Bri*_*eud 2 javascript ecma ecmascript-6
为什么ES6决定左侧任务更有意义,或者对于结构化任务更有用?刚开始看,它似乎使代码更容易出错,现在根据情况可以在双方进行分配.
let obj = { first: 'Jane', last: 'Doe' };
let { first: f, last: l } = obj;
// f = 'Jane'
// l = 'Doe'
Run Code Online (Sandbox Code Playgroud)
f和l似乎都在左侧定义,使用左侧var名称和右侧vars值的组合值.
鉴于这个sytax的基本原理是保持它与对象声明语法相同,为什么ECMA不会使用:
let { f: first, l: last } = obj;
Run Code Online (Sandbox Code Playgroud)
因为它应该保留对象文字语法:属性名称在冒号之前.语法应该嵌套,如果目标位于左侧,则无法正常工作:
let {propName: [arrayElement, ...moreElements], otherName: {nestedProp: targetName}} = obj;
Run Code Online (Sandbox Code Playgroud)
在你的方法中,它会
let {[arrayElement, ...moreElements]: propName, {targetName = nestedProp}: otherName} = obj;
Run Code Online (Sandbox Code Playgroud)
结肠没有任何意义.
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |