var i=0;
var t={
a:function(){
this.timer=setInterval(this.b,30);
},
b:function(){
if(i++<1){
console.log(this);
}
}
};
t.a();
Почему я получил [круглый объект global]? Я хочу, чтобы «это» относится к объекту t
;SetInterval с областью действия в javascript
Как я могу это получить?
И я знаю, как решить эту проблему, следующие коды прав результат:
var i=0;
var t={
a:function(){
var that=this;
this.timer=setInterval(function(){
that.b();
},30);
},
b:function(){
if(i++<1){
console.log(this);
}
}
};
t.a();
Итак, если вы знаете, как исправить проблему ... почему вы спрашиваете? – migg
@migg я хочу знать почему :) – Fakefish
Не путайте * context * ('thisArg') с [variable] * scope * – Bergi