在ES6中将数组解构为函数参数的语法

JBC*_*BCP 7 javascript ecmascript-6

在Javascript 2015/ES6/ECMAScript 2015中有大量关于如何构造作为函数参数传递的对象的文档,其功能如下:

function foo({a, b}) {
   console.log(`a: ${a}, b: ${b}`);
}
Run Code Online (Sandbox Code Playgroud)

但是如何构造数组参数?

JBC*_*BCP 14

构造数组参数的正确语法是:

function foo([a, b]) {
   console.log(`param1: ${a}, param2: ${b}`);
}
Run Code Online (Sandbox Code Playgroud)

它可以像这样调用:

 foo(['first', 'second']);
 // Will output:
 // param1: first, param2: second
Run Code Online (Sandbox Code Playgroud)

根据探索ES6,第11.6节,您可以使用它来解析箭头函数中的参数:

const items = [ ['foo', 3], ['bar', 9] ];
items.forEach(([word, count]) => {
    console.log(word+' '+count);
});
Run Code Online (Sandbox Code Playgroud)

  • 如果我们想捕获数组中剩余的参数,我们可以使用rest运算符:`function foo([a, b, ...args])` (2认同)