var obj1={
var1:"val1",
init:function(){
this.var1="val2";
var self=this;
setTimeout(function(){self.var1="val3"},1);
setTimeout(function(){obj1.var1="val3"},1);
}
}
obj1.init();
console.log(obj1.var1);
console.log(obj1);
如何在setTimeout回调中为var1设置/赋值。分配val3没有效果,如截图所示,我们现在有两个属性提到var1。 1是var1 = val2,其他是var1 = val3,但是this.var1总是返回val2而不是val3
答案 0 :(得分:0)
实际上,代码中的值设置为“var3”。但是在你的演示中,控制台打印“var2”是因为console.log()
早于setTimeout()。打印出来后,变量会发生变化。
检查this jfFiddle是否有正确的结果。