// foo 是匹配模式,baz才是变量,真正赋值的是变量baz,而不是模式foo
let { foo : baz } = { foo : ‘aaa’, bar: ‘bbb’ };
// baz = ‘aaa’
// foo error: foo is not defined
// p是模式,不是变量,p不会被赋值
let obj = {
p: [ ‘Hello’, {y: ‘World’} ]
}
let { p: [x, { y }]} = obj;
// x = ‘Hello’
// y = ‘World’
// p也可以作为变量赋值
let obj = {
p: [ ‘Hello’, {y: ‘World’} ]
}
let {p, p: [x, { y }]} = obj;
// x = “Hello”
// y = “World”
// p = [ ‘Hello’, {y: ‘World’} ]
案例1:
var node = {
loc: { start: { line: 1, column: 5 } }
}
var { loc, loc: { start }, loc: { start: { line }}} = node;
console.log(‘我是loc:’, loc);
console.log(‘我是start:’, start);
console.log(‘我是line:’, line);
// 我是loc: {