以下代码效果很好。它将10个未命名的functions
推送到array
,然后成功执行array
中的第7个项目。
var storeStuff = [];
for (let i = 0; i < 10; i++) {
storeStuff.push(function() {
console.log(i * i);
});
}
storeStuff[6]();
然而,上面的测试功能很小。如果我有一个包含许多代码行的大function
,我可能想要在push
之外声明它。
例如,如果我想push
先前定义的function
并稍后调用它,如下例所示,该怎么办?
var storeStuff = [];
function externalFunction(temp) {
console.log(temp * temp)
}
for (let i = 0; i < 10; i++) {
storeStuff.push(externalFunction(i));
}
storeStuff[6]();
不幸的是,这不起作用,我尝试过的所有事情都会崩溃和烧毁。我错了什么?
答案 0 :(得分:1)
使用下面的函数声明
var storeStuff = [];
externalFunction = function(temp) {
console.log(temp * temp)
}
for (let i = 0; i < 10; i++) {
storeStuff.push(externalFunction);
}
storeStuff[6](6);