不废话,上代码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 // 1loc // error: loc is undefinedstart // 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求问这是为什么啊?
添加回答
举报
0/150
提交
取消