javascript - 如何让 JavaScript 向 'unroll' 传递可变数量的参数?

标签 javascript

例如假设我有以下两个函数

function a(param1) {
    console.log(param1);
}

function b(func, params) {
    func(params);
}

然后

b(a, 1);

按预期打印“1”

现在假设我有一个额外的功能

function c(param1, param2) {
    console.log(param1, param2);
}

有没有什么方法可以做类似的事情

b(a, 1);

除了输入两个参数?类似下面的内容

b(c, [2, 3]);

其中 [2, 3] 数组展开为单独的参数

最佳答案

像这样:

function b(func) {
    func.apply(null, [].slice.call(arguments, 1));
}

关于javascript - 如何让 JavaScript 向 'unroll' 传递可变数量的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10927730/

相关文章:

c# - 从 GridView TemplateField 调用 Javascript

javascript - 新 Twitter 小部件的 iframe CSS 覆盖

javascript - 在另一个模块中重用私有(private) jQuery 函数

javascript - jQuery .wrap() 无需重新聚焦

javascript - 动态加载YouTube JSON API

javascript - Gulp 只看主 scss 而不是部分

javascript - atan 和 atan2 有什么区别

javascript - Twitter 关注按钮 : Get the status (followed or not) of the button on load with javascript?

javascript - 长 JavaScript 函数末尾的 CSS 元素更新

javascript - 如何将着色器添加到从 OBJMTLLoader 加载的 THREE.Object3D