向数组添加函数
此代码将函数添加到数组:
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'