在vuex 官网中看到下面那种写法

const moduleA = {
state : ()=>({
count: 0
})
}

一开始不是很理解,为什么是这种写法,定性思维觉得直接用

const moduleA = {
state : ()=> {
count: 0
}
}

为什么要在外面加多一层括号?

但是经过测试后发现,其实是歧义性问题.

如果直接在浏览器运行 a:1

会发现会返回一个1, 实力上,此时解析这个语句的时候会把a解析成语句标签,1结成语句体,因此会直接返回1

引用: https://www.zhihu.com/question/28132931/answer/39523038

所以,不加括号的话,自动认为需要执行{count: 0} 语句块,且没有返回值

如果加了括号的话,表示要返回括号内的表达式,刚好是一个对象

发表评论

电子邮件地址不会被公开。 必填项已用*标注