如何将声明的函数推送到数组中,然后再调用它

时间:2017-07-10 06:16:45

标签: javascript arrays push

以下代码效果很好。它将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]();

不幸的是,这不起作用,我尝试过的所有事情都会崩溃和烧毁。我错了什么?

1 个答案:

答案 0 :(得分:1)

使用下面的函数声明

var storeStuff = [];

externalFunction = function(temp) {
    console.log(temp * temp)
}

for (let i = 0; i < 10; i++) {
    storeStuff.push(externalFunction);
}
storeStuff[6](6);