构造函数中的方法和函数

时间:2014-12-01 11:53:09

标签: javascript oop

我在理解方法和功能之间的区别方面遇到了一些麻烦。我知道,这只是一个不重要的问题,但它真的让我感兴趣。请查看以下代码段,并说明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));
    }  
} 

我认为这是一种功能,不是吗? ;)

1 个答案:

答案 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是一个不是方法的函数。