Javascript 将参数传递给添加到列表中的函数

Javascript 将参数传递给添加到列表中的函数,javascript,jquery,Javascript,Jquery,在下面的代码中,我试图将函数测试添加到数组中。功能测试包含参数param1: 如何将参数传递给添加到数组fArr的函数?错误在这里:fArr[I]param。您从未初始化过变量param。 确实不想使用param1吗?您没有向数组中添加函数。您正在调用该函数,并将其返回的内容添加到数组中。但是函数不返回任何内容,因此您将未定义的内容推送到数组中 我想你想要的是: var param1 = "param1"; var fArr = []; fArr.push(function() { t

在下面的代码中,我试图将函数测试添加到数组中。功能测试包含参数param1:

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

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

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

我想你想要的是:

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);
}

另外,要改掉省略的坏习惯;语句末尾。

但是如果参数名为param1,为什么要调用param?fArr[i]不是函数,为什么要调用它?@Barmar testparam1没有解释为函数?如果在函数名后加括号,则表示调用函数,而不是返回函数..push test.bindundefined,param1作为一个替代方案也应该起作用-@birdspider有点不同,因为它不会在变量上创建闭包。啊,是的-我想它在这里也会起作用,因为param1是固定的-谢谢你指出这一点
Uncaught ReferenceError: param is not defined
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);
}