我偶然发现了这个相对简单的箭头功能:



var x = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
console.log(x());





我知道它的一般功能。但是为什么这件事如此复杂?我的意思是,同一件事可以轻松完成,而且(imo)的可读性也更好:



var x = ([a, b] = [1, 2], c = a + b) => a + b + c;
console.log(x());





那么有人可以告诉我这两种表示法的区别还是为我展示第一种表示法的更好用例?

最佳答案

您的第二个示例的第二个参数是一个简单的es6默认初始化,而您的第一个示例的第二个参数又是一个简单的带有解构的es6默认初始化。
但是,我想您已经知道了。

问题的另一部分是,为我展示第一个更好的用例?

当您要从巨大的javascipt对象访问密钥时,解构方法主要有用。

像这样:

 aHugeJavascriptObject = {
   key1:'value1',
   .
   .
   .
   key999:'value999'
 }


现在,访问对象键key999的一种方法是aHugeJavascriptObject.key999,相反,您可能想做

 const { key999 } = aHugeJavascriptObject


我还假设您已经知道这一点。
但是,恐怕这就是您的问题所在。

10-05 20:01