我只是想找到一个关键字或解决方案,以便我可以进一步找到并解决自己的问题,因此,基本上,我想从一个函数参数中调用一个函数,就像这样。
var arg = function() {/*do something*/};
function do(arg) {
arg();
}
do(arg);
但是我想在上面放多个函数,但不是常数,它有时可以是1个函数,或者有时是2个或更多函数,请问有什么解决方案吗?或我开始使用的关键字?我已经在互联网上搜索了,但是找不到想要的东西。
答案 0 :(得分:2)
function doFn(){
for(var i = 0; i < arguments.length; i++) arguments[i]();
}
一行ES6:
var doFn = (...args) => args.forEach(fn => fn());
PD:“ do”是保留字,您应该使用不同的变量名。
答案 1 :(得分:2)
您可以使用一些非常酷的新功能,称为rest参数。这是一个例子。
function callMultiple(...fn) {
fn.forEach(fn => fn());
}
function FnOne() {
console.log('function one called');
}
function FnTwo() {
console.log('function two called');
}
callMultiple(FnOne, FnTwo);
现在callMultiple可以接受许多功能。 MDN reference
答案 2 :(得分:1)
您需要对do()
函数进行以下操作:
function do(args) {
for (var i = 1; i <= args.length; i += 1) {
args[i]();
}
}
这可以解决您的问题。但是,您应该知道do
是一个JavaScript关键字,因此应避免将其用作自己的变量或函数。
编辑:您必须包括要传递给函数的所有内容,因此您需要添加args
参数。