将参数传递给添加到 List 的函数

Passing a parameter to a function that is added to a List

本文关键字:List 函数 添加 参数传递      更新时间:2023-09-26

在下面的代码中,我试图将函数test添加到数组中。函数test包含一个参数param1

var param1 = "param1"
var fArr = []
fArr.push(test(param1));
for (var i = 0; i < fArr.length; i++) {
  fArr[i](param)
}
function test(param){
  console.log('param is '+param)
}

当我运行此代码时,我收到错误:

Uncaught ReferenceError: param is not defined

如何将参数传递给添加到数组fArr的函数?

您没有向数组添加函数。您正在调用该函数,并将其返回的内容添加到数组中。但是该函数不返回任何内容,因此您将undefined推送到数组上。

我认为你想要的是:

var param1 = "param1";
var fArr = [];
fArr.push(function() {
    test(param1));
});
for (var i = 0; i < fArr.length; i++) {
  fArr[i]();
}
function test(param){
  console.log('param is '+param);
}

附言:改掉在陈述末尾省略;的坏习惯。

错误在这里:fArr[i](param) .您从未初始化过变量 param 。您确定不想使用param1吗?