将函数推送到数组日志'undefined'数组中



我只是想知道为什么当我记录数组的内容时控制台读取[undefined, undefined, undefined]

这是代码,我想我希望控制台将数组的内容记录为[runIt(1), runIt(2), runIt(3)]

var myArr = [];
myArr.push( runIt(1) );
myArr.push( runIt(2) );
myArr.push( runIt(3) );
console.log(myArr);
function runIt (num) {
    console.log(num);  
};

你不是在推送函数,而是在推送调用函数的结果。

如果要推送调用"runIt"的函数,则必须创建它们:

myArr.push( function() { runIt(1); } );

你可以创建一个"runItRunner"函数:

function runItRunner( arg ) {
  return function() {
    runIt( arg );
  };
}

然后:

myArr.push( runItRunner(1) );
myArr.push( runItRunner(2) );
// etc

相关内容

最新更新