0

我有这个代码

var MyObj = (function() {
    //Constructor
    var MyObj= function(){
        this.myArray = [1,2,3];
    }

    MyObj.prototype = {
        myFunc: function(){
            alert(this.myArray.toString());                
        },
        myFuncCaller: function(){            
            MyObj.prototype.myFunc();                
        }
    };
    return MyObj;      
})();

var myObj = new MyObj();
myObj.myFunc();

//This line will throw an exception because this.myArray is undefined
myObj.myFuncCaller();

​ 为什么是this.myArray未定义的?我知道我做错了什么,正确的方法是什么?

4

1 回答 1

4

只需使用this

this.myFunc();

当您在 Javascript 中调用函数时,this设置为您调用它的表达式。
例如,在您的代码中,thisin myFunc()is MyObj.prototype

于 2012-11-28T17:39:49.083 回答