JavaScript 中变量范围的问题
Issue with scope of variables in javascript
可能的重复项:
循环内的Javascript闭包 - 简单的实际示例
我似乎正在努力理解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]))]}
}
}
这段代码应该对我在图表上的一些可移动点的可能位置施加一些约束。 问题似乎在于,当 graph.point 对象检查是否满足约束时,它们使用 k 的最后一个值,即 6。 如何确保这些对象使用它们应该使用的 k 值?
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);
}
相关文章:
- setInterval游戏循环的范围问题
- Javascript innerHTML超出范围的问题
- AngularJs避免范围界定问题
- firefox中的Javascript事件范围问题
- AngularJS指令范围约束问题重复出现
- jQuery“this”范围问题
- 可以't在quizz页面范围问题上用最终分数更新变量
- JavaScript 函数变量范围问题
- 奇怪的可变范围问题
- JavaScript 中变量范围的问题
- 主干.js(具有 Require.js)变量/范围访问问题
- 递归承诺调用 - 内存范围变量问题
- JQuery 范围滑块步进更改问题
- AngularJS中的范围问题
- 如何在 JavaScript for D3.js 中解决这样的范围问题
- 我可以设置这个吗'某事'在该服务中动态创建的嵌套对象中的服务?(可能是范围问题)
- Highcharts列范围工具提示问题
- 在函数中提示未定义返回.(问题)范围
- 访问Javascript's变量:涉及Javascript, JQuery和PHP/MySQL的问题&范围
- JavaScript 闭包问题..范围