如何在不丢失上下文的情况下在另一个原型函数内调用原型函数

时间:2012-11-28 17:38:36

标签: javascript

我有CODE

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未定义? 我知道我做错了什么,怎么做正确的方法呢?

1 个答案:

答案 0 :(得分:4)

只需使用this

this.myFunc();

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