在JavaScript中,当一个函数作为一个属性添加到一个对象上时,它是一个函数,还是一个函数的调用对象使它成为一个方法?
答案 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
,我不会争论它,也不会另有说法。
关于术语的笨拙不是编码。玩得开心