我在理解方法和功能之间的区别方面遇到了一些麻烦。我知道,这只是一个不重要的问题,但它真的让我感兴趣。请查看以下代码段,并说明innerFunc
是函数还是方法。
function myObj() {
this.result = "RESULT: ";
// is this a method or a function ?
function innerFunc(a, b) {
return a + b;
//alert(this.result) not possible
}
this.sum = function(a, b) {
alert(this.result + innerFunc(a, b));
}
}
我认为这是一种功能,不是吗? ;)
答案 0 :(得分:0)
所有方法都是功能;并非所有功能都是方法。使用您的示例:
function myObj() {
this.result = "RESULT: ";
// is this a method or a function ?
function innerFunc(a, b) {
return a + b;
//alert(this.result) not possible
}
this.sum = function(a, b) {
alert(this.result + innerFunc(a, b));
}
}
如果您var x = new myObj();
x
,则result
有两个属性:sum
,设置为"结果:"和{{1} },这是一个需要2个参数的函数。
但是,不会在其上面有一个名为innerFunc
的属性。这只能从x
内部获得,即在构造函数或方法中,例如, sum
。
所以x.sum
是一个方法,它是一个函数,但innerFunc
是一个不是方法的函数。