为什么要使用这个 javascript 箭头函数或者有什么区别?
Why to use this javascript arrow function or what is the difference?
我偶然发现了这个相对简单的箭头函数:
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());
那么有人可以告诉我这两种表示法的区别,或者给我展示第一种更好的用例吗?
第一个符号将带有 属性 x
的对象作为第二个参数。它被解构并且 x
被提取为 c
。如果未定义,则使用带有 属性 x
的默认对象:
console.log(x([1, 2], {x: 5}));
而第二个采用简单参数原始参数(在本例中可能是数字):
console.log(x([1, 2], 5));
因此,唯一的区别是输入函数的第二个参数。
你的第二个例子的第二个参数是一个简单的 es6 默认初始化,而你的第一个例子的第二个参数也是一个简单的带有解构的 es6 默认初始化。
但是,我想你已经知道了。
你的问题的另一部分是,给我看第一个更好的用例?
当您想从一个巨大的 javascipt 对象访问一个键时,解构主要有用;
像这样:
aHugeJavascriptObject = {
key1:'value1',
.
.
.
key999:'value999'
}
现在,访问对象键 key999
的一种方法是 aHugeJavascriptObject.key999
,而您可能想这样做
const { key999 } = aHugeJavascriptObject
我还假设你已经知道了。
但是,恐怕这就是你的问题。
我偶然发现了这个相对简单的箭头函数:
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());
那么有人可以告诉我这两种表示法的区别,或者给我展示第一种更好的用例吗?
第一个符号将带有 属性 x
的对象作为第二个参数。它被解构并且 x
被提取为 c
。如果未定义,则使用带有 属性 x
的默认对象:
console.log(x([1, 2], {x: 5}));
而第二个采用简单参数原始参数(在本例中可能是数字):
console.log(x([1, 2], 5));
因此,唯一的区别是输入函数的第二个参数。
你的第二个例子的第二个参数是一个简单的 es6 默认初始化,而你的第一个例子的第二个参数也是一个简单的带有解构的 es6 默认初始化。 但是,我想你已经知道了。
你的问题的另一部分是,给我看第一个更好的用例?
当您想从一个巨大的 javascipt 对象访问一个键时,解构主要有用;
像这样:
aHugeJavascriptObject = {
key1:'value1',
.
.
.
key999:'value999'
}
现在,访问对象键 key999
的一种方法是 aHugeJavascriptObject.key999
,而您可能想这样做
const { key999 } = aHugeJavascriptObject
我还假设你已经知道了。 但是,恐怕这就是你的问题。