当我不知道提供了多少参数时,如何运行带有所有参数的回调函数。
采用以下示例:
function tryMe (param1, param2) {
alert(param1 + " and " + param2);
}
function callbackTester (callback) {
callback (arguments[1], arguments[2]);
}
callbackTester (tryMe, "hello", "goodbye");
callbackTester (tryMe, "hello", "goodbye", "seeYouLater");
如何从callbackTester()
函数运行回调,以便它会自动调用它的所有参数?
答案 0 :(得分:5)
这个应该符合您的需求:
function callbackTester() {
var args = Array.prototype.slice.call(arguments),
callback = args.shift();
callback.apply(this, args);
}
答案 1 :(得分:1)
ECMAScript6引入了所谓的rest parameter。它允许您引用未明确列出的所有剩余参数。与.apply
一起,您的功能将如下所示
function callbackTester (callback, ...args) {
callback.apply(null, args);
}
// callback = tryme | args = ["hello", "goodbye"]
callbackTester(tryMe, "hello", "goodbye");
您今天可以使用ES6功能,例如6to5。