Vue 中的奇怪符号:const { state = {} } = this.$store;

Strange notation in Vue: const { state = {} } = this.$store;

我正在关注一个已经创建的项目,并且我 运行 在一个带有 Vuex 的 Vue 项目中使用这个符号:

const { state = {} } = this.$store;
const { orders = {} } = state;

它似乎在定义一个名为 state 的本地对象,该对象设置为等于 Vuex 存储的值...然后将其设置为另一个名为 "orders" 的对象,但我有点迷路在符号本身上。即这表明:

{ variable = {} } = anotherObj

以及此表示法(如果存在)的名称。 (这样我就可以 google 它并弄清楚它是如何处理深度克隆的,等等,因为它似乎是一种克隆对象的方法。)...或者这可能是 vuex 特有的东西?

这个:

const { state = {} } = this.$store;

destructuring assignment,具有 默认值 如果源 (this.$store) 没有 属性 state 或拥有它但值为 undefined。结果将是,如果 属性 存在且不具有值 undefined,则 state 将具有 this.$store.state 的值,或者如果属性 不存在或值为 undefined.

示例(使用字符串而不是对象,但它是相同的主体):

const obj1 = {};
const { a = "default" } = obj1;
console.log(a);        // "default"

const obj2 = {
    b: "value from obj2"
};
const { b = "default" } = obj2;
console.log(b);        // "value from obj2"