JS 的函数和方法区别在哪里?
想花 3 天速览一下 js 所以用的菜鸟 看到函数的第三部分有点疑惑
百度的搜索结果看起来像乱码…….
想花 3 天速览一下 js 所以用的菜鸟 看到函数的第三部分有点疑惑
百度的搜索结果看起来像乱码…….
foo.call({ a: 123 })
“`
这个 call 就是函数的方法
js 里面没有类的概念,虽然 es6 加了 class,算是种语法糖。但 js 内置类型就有 Function,这个是 JS 语言意义上的 Function,该 Function 下可以有属性(包括 property 之类···)、有方法,原型可以访问,方法可以调用。
当然,你看了会说,这 tmd 不是类和函数么?
emm,设计思想不一样嘛,自动脑内转换下思路。
Function 下可以有属性(包括 prototype 之类···),有方法。 属性可以访问,方法可以调用。
——更权威的定义使用当然在 mdn 里,我在本帖里晒出来自己混乱的 demo,也是希望有大佬可以再来点更站得住脚的解析
方法是作为一个属性的值的函数
函数就是对输入进行处理然后输出结果的过程。
举个例子,比如“下雨”;用方法来实现就是你需要先构造一个“雨”的 Class 或构造函数,然后在其原型上加一个“下”的方法;用函数的来实现就是构造一个通用的“下”函数,然后把“雨”作为参数传进去(当然你也可以传“雪”、“冰雹”、“馅饼”)。
从 JS 内部原理来说,方法和函数主要区别在于 this,即过程执行的环境。某种程度来说,方法也是一种函数,只不过方法的运行通常是以对象数据为基础的,方法的 this 为对象本身。
没有依赖于任何对象的,可以实现独立功能的函数,就是我们一般说的“函数”。
函数式编程和面向对象编程是两种思想,JS 两种都支持(可能写法和其他语言不大一样),如何认定也取决于开发人员自己的规划。