在对象中,将变量名当键名,需要加 [ ] ,不然就默认是字符串
如在对象中定义函数(对象里直接写方法可以不用加“ :”):
直接调用的话是
mutations[types.SET_PERMISSION](a,b)
这里是vuex里的mutations 所以一般是 :commit(types.SET_PERMISSION,payload);因为commit第一个参数是填方法名,如果是字符串的话 没有提示容易打错,也不知道总共有哪些方法,换成变量有代码提示,可以更方便地开发。
给对象赋值的时候也要用 [ ]
如果直接使用点操作符的话无法赋值成功,或者混用也无法赋值成功:
item被当成字符串,故:
a.item = undefined
aa.item = undefined
item被当成字符串,故 dd 里面只有 item 一个属性,重复赋值后被 a.d覆盖
a.item = undefined
两边都使用 [ ] ,赋值成功:
这里 item 就不是字符串了,而都被当成变量来解析,所以赋值成功