我正在跟踪已经创建的项目,并且在Vuex的Vue项目中遇到了这种表示法:
const { state = {} } = this.$store;
const { orders = {} } = state;
似乎正在定义一个名为state的本地对象,该对象设置为等于Vuex存储的值...然后将其设置为等于另一个名为“ orders”的对象,但是我对表示法本身有些迷惑。即表示什么:
{ variable = {} } = anotherObj
,如果存在,也称为该符号。 (这样我就可以在Google上搜索并弄清楚它是如何处理深度克隆的,因为这似乎是克隆对象的一种方法。)...或者也许vuex有点特别?
答案 0 :(得分:3)
此:
const { state = {} } = this.$store;
如果源(this.$store
不具有属性state
或具有属性但值为{,则为destructuring assignment且具有默认值 {1}}。结果将是,undefined
将具有state
的值(如果该属性存在且不具有值this.$store.state
),或者将具有新的空白对象(如果该属性不存在)存在或具有值undefined
。
示例(使用字符串而不是对象,但是它是相同的原理):
undefined