let { foo: baz } = { foo: 'aaa', bar: 'bbb' }; baz // "aaa" foo // error: foo is not defined
对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者。
找到同名属性foo,再把'aaa'赋给'baz'。
foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。
foo
baz