范围内的函数问题

时间:2014-06-06 07:13:24

标签: javascript scope

我遇到变量范围的问题。前两个返回正确的值但是当我订阅一个事件(事件正在工作)时,它返回this._id为undefined。我也试过它作为MyFunction._id;

 var i = 0;

 var func = new MyFunction();
 func.init();

 function MyFunction(i){
     this._id = i;
 }

 MyFunction.prototype.init = function(){

     Debugger.log("A : " + this._id); //displays the result of i
     this.myTest; //displays the result of i
     Event.subscribe("UPDATE", this.myTest);// is undefined
 }

 MyFunction.prototype.myTest = function(){
     Debugger.log("B : " + this._id);
 }

THX。

1 个答案:

答案 0 :(得分:1)

你必须这样做:

 Event.subscribe("UPDATE", this.myTest.bind(this));