这是与我的情况类似的示例代码:
var customProcessor = function test1(arga, argb, argc, argd) {
console.log('customProcessor', 'arga', arga);
console.log('customProcessor', 'argb', argb);
console.log('customProcessor', 'argc', argc);
console.log('customProcessor', 'argd', argd);
};
var utilityMethod = function test2(arga, argb, someFunc, cbArgs) {
console.log('utilityMethod', 'arga', arga);
console.log('utilityMethod', 'argb', argb);
cbArgs.unshift(argb);
cbArgs.unshift(arga);
someFunc.apply(this, cbArgs); // INTENT: someFunc(arga, argb, argc, argd);
};
utilityMethod('argA', 'argB', customProcessor, ['argC','argD']);
上面的代码设法将所有4个必需参数传递给我的
customProcessor
方法,但是就意图而言,以下几行不是最易读的: cbArgs.unshift(argb);
cbArgs.unshift(arga);
someFunc.apply(this, cbArgs); // INTENT: someFunc(arga, argb, argc, argd);
是否有某种方式可以使用我可能不知道的JS语法以更不言自明的方式编写它们?
这是我想象中的更具可读性的内容:
// not real code
someFunc.apply(this, [arga, argb, cbArgs]);
但是我需要知道是否有一种现实的JS语法可以实现这一目标?
最佳答案
使用spread syntax:[arga, argb, ...cbArgs]
请注意,这也直接在函数调用上起作用,替换apply
(如果不需要显式的this
),例如someFunc(arga, argb, ...cbArgs)
关于javascript - 如何使用自己的元素和另一个数组的元素初始化JavaScript数组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45766886/