码迷,mamicode.com
首页 > 其他好文 > 详细

Es6 -- 对象的解构赋值

时间:2018-05-09 01:21:12      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:不一致   foo   OLE   解构赋值   解构   log   def   元素   同名   

解构不仅可以用于数组,还可以用于对象。

var {foo, bar} = {foo: "aaa", bar: "bbb"};
console.log(foo); //aaa
console.log(bar); //bbb

 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

var {bar, foo} = {foo: "aaa", bar: "bbb"};
console.log(foo) // aaa
console.log(bar) // bbb

var {baz} = {foo: "aaa", bar: "bbb"};
console.log(baz); // undefined

以上的代码中的第一个例子,等号左边两个变量的次序与等号右边两个同名属性不一致。但是对取值完全没有影响。第二个例子中,变量没有相应的同名属性,导致取不了值,最后等于undefined.

如果变量名与属性名不一致,必须写成下面这样。

var {foo: baz} = {foo: "aaa", bar: "bbb"};
console.log(baz); // aaa

 

let obj = {foo: "aaa", bar: "bbb"};
let {foo: f, bar: b} = obj;
console.log(f); // aaa
console.log(l); // bbb

 这实际上说明,对象的解构赋值是以形式的简写

var {foo: f, bar: b} = {foo: "aaa", bar: "bbb"};

  

 

 

Es6 -- 对象的解构赋值

标签:不一致   foo   OLE   解构赋值   解构   log   def   元素   同名   

原文地址:https://www.cnblogs.com/qjuly/p/9011678.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!