我只是想知道为什么当我记录数组的内容时控制台读取[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