正如我们所知,setTimeout
它不能正常工作,this
因为它在全局范围内运行(并且this
将会window
)
但我做了一个简单的测试:
只需用函数包装它:
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