我有一系列功能。然后我使用forEach循环将参数传递给这些函数。虽然当我尝试调用第一个函数时,我在控制台中得到了未定义而不是'嘿'
然后我尝试用旧的数组制作一个新的数组。并尝试使用map来获取函数数组,并将参数传递给每个函数,但我得到一个包含三个未定义项的数组,所以我甚至无法调用函数。
const arr = [(arg) => {console.log(arg)}, (arg) => {}, (arg) => {} ];
arr.forEach(func => func('hey'));
arr[0]();
const arr2 = arr.map(func => func('ho'));
console.log(arr2);
arr2[0]();
两种情况都有什么问题?
答案 0 :(得分:1)
第一种情况没有问题,但arr[0]();
只打印undefined
,因为您没有通过任何争论。
在第二种情况下,结果数组包含每个函数调用的结果,每个函数返回undefined
,因此arr2
中没有函数可以调用。
您的代码段在HTML部分中有JS,所以它根本没有运行。
const arr = [(arg) => { console.log(arg) }, (arg) => {}, (arg) => {}];
arr.forEach(func => func('hey'));
arr[0](); // <-- You're passing no argument here
// This invokes the functions, and builds an array of the functions'
// return values, all of which are `undefined`.
const arr2 = arr.map(func => func('ho'));
console.log(arr2);
arr2[0]();
&#13;