今天学vuex的时候看别人写了一段这样的代码
const CHANGE_STATUS = 'CHANGE_STATUS'
const mutations = {
[CHANGE_STATUS](state) {
state.isShow = !state.isShow
}
}
本人前端不精,搞不明白为什么[CHANGE_STATUS]
能作为方法名,它不是一个数组吗,后来才发现[ ]在前端还有一种用法。
在Javascript中,方括号[ ]用于计算属性名,它允许您根据变量或表达式的值来定义对象的属性名。在上面的代码中
[CHANGE_STATUS]
被用作属性名是因为它是一个计算属性名的示例。具体来说,[CHANGE_STATUS]
的值将作为mutations
的属性名,在这种情况下,CHANGE_STATUS
是一个常量,那么这个常量的值也就作为了mutations
的一个属性名,而这个属性的值是一个方法。当我们改变CHANGE_STATUS
的值,mutations
的属性也会变化。
当我们需要根据变量或动态生成的值来定义属性名时。这种写法可以帮助我们更灵活地操作对象的属性。