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

时间:2019-10-02 16:32:41

标签: javascript vue.js vuex notation

我正在跟踪已经创建的项目,并且在Vuex的Vue项目中遇到了这种表示法:

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

似乎正在定义一个名为state的本地对象,该对象设置为等于Vuex存储的值...然后将其设置为等于另一个名为“ orders”的对象,但是我对表示法本身有些迷惑。即表示什么:

{ variable = {} } = anotherObj

,如果存在,也称为该符号。 (这样我就可以在Google上搜索并弄清楚它是如何处理深度克隆的,因为这似乎是克隆对象的一种方法。)...或者也许vuex有点特别?

1 个答案:

答案 0 :(得分:3)

此:

const { state = {} } = this.$store;
如果源(this.$store不具有属性state或具有属性但值为{,则

destructuring assignment且具有默认值 {1}}。结果将是,undefined将具有state的值(如果该属性存在且不具有值this.$store.state),或者将具有新的空白对象(如果该属性不存在)存在或具有值undefined

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

undefined