所以让我说我有一系列功能。如何为每个函数传递一个值?
这是一个愚蠢的例子:
var poopSong =[
function(this){ console.log('this is '+this);},
function(this){ console.log('that is '+this);},
function(this){ console.log('you are '+this);},
];
poopSong("poop")[1];
答案 0 :(得分:2)
只需遍历数组:
for(int i = 0; i < poopSong.Length; i++){
poopSong[i]("poop"); //not poopSong("poop")[i];
}
答案 1 :(得分:2)
poopSong是数组,因此要获取项目,请使用索引。由于数组中的项是函数,用()执行函数,传入参数(“value”);
poopSong[1]("value");
现在,如果您想了解每个项目,请使用循环?
for(var i = 0; i < poopSong.length; i++)
{
poopSong[i]("value");
}
或在功能编程领域,使用forEach
poopSong.forEach(function(item){ item("value"); });
这就是你真正追求的,因为它非常基本的东西,或者我错过了什么。
其次,不要使用单词this
作为参数,它是一个保留字,并且在JavaScript中有一个完整的其他上下文
答案 2 :(得分:1)
首先,您必须更改传递的参数,this
是保留关键字,我认为您不想使用它。当然,您可以参考this
中的console.log()
。但是,我不认为这是你想要的。据说poopSong
的声明应该类似于以下内容:
var poopSong = [
function(a){ console.log('this is '+a);},
function(b){ console.log('that is '+b);},
function(c){ console.log('you are '+c);},
];
然后你可以将参数传递给这些函数,如下所示:
poopSong[0]('you value');
我们使用方括号和索引来获取数组的项目,因为在我们的例子中,item是一个函数,我们可以使用括号调用它并传递相应的参数。
var poopSong =[
function(a){ console.log('this is '+a); },
function(b){ console.log('that is '+b); },
function(c){ console.log('you are '+c); }
];
poopSong[0]("1");
poopSong[1]("2");
poopSong[2]("3");