不废话,上代码
var obj = {
p: [ 'Hello',
{ y: 'World' } ]
};
var { p: [x, { y }] } = obj; x // "Hello"
y // "World"
上面代码是es6标准入门中关于对象解构赋值的一个例子,书中对此段代码的解释是 此时p是模式,p并不会被赋值,
var node = { loc: {
start: { line: 1,
column: 5 }
} };
var { loc: { start: { line }} } = node; line // 1
loc // error: loc is undefined
start // error: start is undefined
上面代码中,只有line是变量,loc和start都是模式,不会被赋值
但是
var { foo: baz } = { foo: 'aaa', bar: 'bbb' }; baz // "aaa"
中的foo确实被baz赋值了
可是
let baz;
({bar: baz} = {bar: 1});
这段代码输入的仍然是bar//1
求问这是为什么啊?
慕少森
相关分类