2013-03-18 64 views
0
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在回调中为对象的属性/变量赋值

enter image description here

回答

0

其实值设为您的代码 “VAR3”。但在你的演示中,控制台打印“var2”是因为console.log()早于那个setTimeout()。打印出来后,变量发生变化。

检查this jfFiddle以获得正确结果。