Possible Duplicate:
Javascript closure inside loops - simple practical example
我似乎在努力理解javascript中变量的范围。
我有以下代码:
for (var i =2; i< 5;i++){
var k = (i+1).toString()
window['graph.point'+i].onMove = function(x,y){
return [min(x,window['graph.point'+k].coord[0]],f(min(x,window['graph.point'+k].coord[0]))]}
}
}
最佳答案
for
块没有自己的变量作用域,因此您需要使用立即函数创建一个新作用域:
for (var i =2; i< 5;i++){
var k = (i+1).toString();
(function(k, i) {
window['graph.point'+i].onMove = function(x,y){
return [min(x,window['graph.point'+k].coord[0]],f(min(x,window['graph.point'+k].coord[0]))]}
}
})(k, i);
}