Open lzcdev opened 5 years ago
输出:
aaa
ReferenceError: foo is not defined
对象的解构赋值是下面形式的简写:
let { foo: foo, bar: bar } = { foo: 'aaa', bar: 'bbb' };
可以简写成
let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
也就是说,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。