首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行带所有参数的回调

运行带所有参数的回调
EN

Stack Overflow用户
提问于 2015-01-06 14:04:54
回答 2查看 67关注 0票数 3

当我不知道提供了多少参数时,如何运行带所有参数的回调函数。

以下列例子为例:

代码语言:javascript
复制
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()函数运行回调,以便它能够自动调用其所有参数?

小提琴:http://jsfiddle.net/qj1rs29q/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-06 14:12:30

这个应该适合你的需要:

代码语言:javascript
复制
function callbackTester() {
    var args = Array.prototype.slice.call(arguments),
        callback = args.shift();
    callback.apply(this, args);
}

小提琴

票数 5
EN

Stack Overflow用户

发布于 2015-01-06 14:41:26

ECMAScript6引入了所谓的rest参数。它允许您引用所有未显式列出的其余参数。与.apply一起,您的函数将如下所示

代码语言:javascript
复制
function callbackTester (callback, ...args) {
    callback.apply(null, args);
}

// callback = tryme | args = ["hello", "goodbye"]
callbackTester(tryMe, "hello", "goodbye"); 

您可以在今天的ES6特性和6至5之类的预言片中使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27800315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档