【发布时间】:2018-06-30 12:23:14
【问题描述】:
在MDN 上,以下代码用作如何使用箭头函数编写更短函数的示例。
var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
materials.map(function(material) {
return material.length;
}); // [8, 6, 7, 9]
materials.map((material) => {
return material.length;
}); // [8, 6, 7, 9]
materials.map(({length}) => length); // [8, 6, 7, 9]
我先了解这两个。最后一个函数到底发生了什么?
是否是 ES6 对象解构赋值(即当从 map 接收到一个材质 String 对象作为参数时,该字符串的长度属性被解构为长度变量,然后由箭头函数返回)?
【问题讨论】:
-
解构,是的。破坏,绝对没有。
-
这不是赋值,而是参数声明,但是是的,它是相同的解构语法,并且与赋值表达式中的工作方式相同。
-
字符串对象有一个长度属性。因此,该对象属性正在解包:=> developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: javascript ecmascript-6 arrow-functions