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()isMyObj.prototypeです。

于 2012-11-28T17:39:49.083 に答える