1.6 对象解构赋值机制

先来看几段代码

let { foo: foo, bar: bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
baz // "bbb"

// 简写
let { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
baz // "bbb"
let { foo: baz } = { foo: "aaa", bar: "bbb" };
baz // "aaa"
foo // error: foo is not defined
对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者(变量),而不是前者(匹配模式)。上面代码中,foo是匹配的模式,baz才是变量。真正被赋值的是变量baz,而不是模式foo。
posted @ 2021-01-06 22:45  17135131xjt  阅读(62)  评论(0编辑  收藏  举报