私たちが知っているように、はグローバル スコープで実行されるため、 でsetTimeout正しく動作しません(そして今後も)thisthiswindow
しかし、私は簡単なテストを行いました:
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