向数组添加函数

此代码将函数添加到数组:

var fArr = [] fArr.push(test()) fArr.push(test()) function test(){ console.log('here') } 

但是每次将函数test()添加到数组fArr时都会调用它

可以在不调用函数的情况下将函数test()添加到数组fArr吗?

我试图用函数填充数组fArr然后迭代fArr并调用函数,而不是调用函数,因为它们被添加到fArr这是当前的行为。

小提琴: http : //jsfiddle.net/3fd83oe1/

是的,您可以向数组添加函数。 你实际在做的是调用函数并将函数调用的结果添加到数组中。 你想要的是这个:

 fArr.push(test); fArr.push(test); 

它很简单:

 fArr.push(test, test); 

例子

 var fArr = [] function test() { return 'here'; } fArr(test, test); // > Array [ function test(), function test() ] // Because test evaluates to itself fArr(test(), test()); // > Array [ "here", "here" ] // Because test() evaluates to 'here'