私たちが知っているように、はグローバル スコープで実行されるため、 でsetTimeout
正しく動作しません(そして今後も)this
this
window
しかし、私は簡単なテストを行いました:
function でラップするだけです:
var o={}
o.a=1;
o.m=function (){alert(this.a);}
setTimeout(
function (){
o.m() ;
}
,100);
そして、それは警告を行い1
ます。
ここで何か不足していますか?なぜこの解決策を示唆する答えがないのですか? 動作が異なりますか?
ps : ここで興味を持った人のために、失敗するデモがあります:
var o={}
o.a=1;
o.m=function (){alert(this.a);}
setTimeout( o.m ,100); //undefined