请查看此代码:
var arr = [];
var assignFunction = function() {
for (var i = 0; i < 3; i++) {
arr[i] = function() {
console.log(i);
}
}
}
arr[0];
arr[1];
arr[2];
你会期望它会分配一个你可以调用/运行的函数,但不是。我正在寻找好的解释它真正在做什么。 arr[i]
是typeof
函数,意味着它已被分配,但永远不会运行并打印任何内容到控制台。
答案 0 :(得分:0)
您需要致电assignFunction
,将功能分配给arr
以外的索引。之后,您可以使用arr[index]()
执行函数。
为什么每个函数在控制台中打印3
,您可以阅读this answer
var arr = []
var assignFunction = function() {
for (var i = 0; i < 3; i++) {
arr[i] = function() {
console.log(i)
}
}
}
assignFunction()
arr[0]()
arr[1]()
arr[2]()
&#13;