我正在关注一个已经创建的项目,我在一个使用 Vuex 的 Vue 项目中遇到了这个符号:
const { state = {} } = this.$store;
const { orders = {} } = state;
它似乎定义了一个名为 state 的本地对象,该对象设置为 Vuex 存储的值...然后将其设置为另一个名为“orders”的对象,但我对符号本身有点迷茫.即这表明什么:
{ variable = {} } = anotherObj
还有这个符号如果存在的话叫什么。 (这样我就可以用谷歌搜索它并弄清楚它是如何处理深度克隆的,等等,因为它似乎是一种克隆对象的方法。)...或者这可能是 vuex 特有的东西?
最佳答案
这个:
const { state = {} } = this.$store;
是destructuring assignment如果源 ( this.$store
) 没有属性 state
,则使用默认值或拥有它但值为 undefined
.结果将是 state
将具有 this.$store.state
的值如果该属性存在并且没有值 undefined
, 或者如果该属性不存在或具有值 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"
关于javascript - Vue : const { state = {} } = this. $store 中的奇怪符号;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58205670/