spread(someFunction, [1, true, "Foo", "bar"] ) // is the same as...
someFunction(1, true, "Foo", "bar")
我写了这段代码但有些错误:
function spread(func, args) {
func();
}
function func(args){
console.log(args[0] + args[1]);
}
spread(func,[5,6])
TypeError:args未定义,但我无法定义它,因为它将在调用函数时定义。
传播(FUNC,[5,6])
我也不能使用变量。我可以就是这种功能。 (这是一个测试)
答案 0 :(得分:2)
在JS中只有两种方法可以实现这样的功能。一个生成一个表示函数调用并使用Function.prototype.apply来评估它的字符串。
spread(add, [1, 2]); //3
function add(num1, num2) { return num1 + num2; }
function spread(fn, args) {
return fn.apply(null, args);
}
答案 1 :(得分:0)
如果要将结果保存在变量中,则必须将参数传递给func并返回它。
function spread(func, args) {
return func(args);
}
function func(args){
console.log(args[0] + args[1]);
//do something more, maybe:
return (args[0] + args[1])
}
var result = spread(func,[5,6])