在JavaScript中,函数何时成为一种方法?

时间:2015-04-15 18:33:11

标签: javascript methods

在JavaScript中,当一个函数作为一个属性添加到一个对象上时,它是一个函数,还是一个函数的调用对象使它成为一个方法?

3 个答案:

答案 0 :(得分:3)

the specification中的定义是:

  

作为属性值的函数

答案 1 :(得分:-1)

由于每个函数都是javascript是对象的一部分,从技术上讲它们都是方法。

就个人而言,我会在对象的绑定上加以区分,如果你将一个函数绑定到一个特定的范围,它就是一种方法。

答案 2 :(得分:-1)

技术上,javascript没有面向技术面向方法的方法。而是使用对象继承的原型模型(例如javascript没有类继承但是原型继承,不支持私有方法等等,这些是两个模型之间的差异,例如" Javascript,好的部分" )。

无论如何,任何作为对象属性添加的函数都可以被称为对象的方法,例如obj.my_method(),并且函数内部的this将动态地访问当前{{1 }}

调用函数的另一种方法就是使用object功能,就好像它是方法一样。例如.call这也是在javascript中使用私有方法的替代方法。可以定义一个不能作为object属性访问的函数,但可以调用它就好像它是对象的一个​​方法,使用my_method.call(obj)将函数内部的.call绑定到当前对象。人们可以争辩说,任何以这种方式(或类似地)调用的函数确实是this,我不会争论它,也不会另有说法。

关于术语的笨拙不是编码。玩得开心