考虑一个简单的模式,我们在循环中调用setTimeout来打印循环计数器:
function g(i){
return function()
{
console.log(i);
}
}
for(i=0;i<4;i++)
{
setTimeout(g(i),3000);
}
返回预期结果:
0
1
2
3
根据我的理解,这个功能应该做同样的事情
function f(i){
this.n = i;
return function()
{
console.log(this.n);
}
}
for(i=0;i<4;i++)
{
setTimeout(f(i),3000);
}
相反,我在NodeJS中获得了不同的结果:
undefined
undefined
undefined
undefined
在Google Chrome中:
3
3
3
3
这些结果都没有对我有意义,所以我希望别人可以向我解释这个。
答案 0 :(得分:0)
您可以使用箭头功能来保持这一点:
radioButton.isSelected = true