对象解构的一个小点

158 阅读1分钟

关键词: 对象, 解构

js

let obj = {
  person: {
    address: {
      nation: 'China',
      province: 'Guangdong'
    }
  }
};
let {person, person: {address: addr}, person: {address: {nation: country}}} = obj; 

对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量, 而不是像数组解构那样按索引顺序.

person在右边的obj里找到对应的匹配模式即obj的person, 所以person就为obj.person的值.

person: {address: addr}在右边的obj里找到对应的匹配模式即obj的person的address,所以addr就为{nation: 'China',province: 'Guangdong'}

③与上面类似.

结果

image.png