javascript - 在 javascript 函数中设置常量

标签 javascript function variables

看一下这段代码:

var arr = new Array();
for (var i = 0; i < 10; i++) {
    arr[i] = {
        func:function() {
            console.log(i);
        }
    }
}
arr[0].func();

我对此感到困惑,因为我认为这会起作用。我基本上希望数组中的每个对象都打印创建函数时为其指定的值。

现在当我调用func()时,它在控制台中打印 10。有没有办法让它打印0, 1, 2, 3, 4, 5, 6, 7, 8, 9反而?谢谢!

最佳答案

问题是内部函数引用了每次都会增加的变量“i”。您可以将每次迭代中“i”的值与函数一起存储在对象中,如下所示:

http://jsfiddle.net/Sgnvp/

var arr = new Array();
for (var i = 0; i < 10; i++) {
    arr[i] = {
        func:function() {
            console.log(this.value);
        },
        value: i
    }
}
arr[0].func();

关于javascript - 在 javascript 函数中设置常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16391072/

相关文章:

javascript - Parse Server Cloud Code 将通知角标(Badge)设置为特定数字

javascript - 如果 Td 值不匹配,则删除整个 Tr - Javascript

javascript - 如何在 React 渲染函数中异步等待?

ios - Switch 或 If 语句中的 Swift 变量

variables - 处理正文后设置页面标题

javascript - 当你组合 "use strict"时会发生什么;内部函数为 "use strict";在全局背景下?

c - 求数字根的算法有错误吗?

javascript - img.variable 不是构造函数

Ajax 空表单警报未正确显示

bash - 使用带有两个变量的 for 循环