[](){}这种函数表达式代表什么意思?如何运作的?

如题:我在看一片介绍vuex的文章的时候发现有段代码

[type.DONE_TODO](state,id){
    //...
}

这种[](){}的表达式代表什么意思?如何运作的?

我基于普通的函数表达式做了一个大胆的推测:
[]这个指代某个对象的一个属性变量,结合后面的函数表达式写法,组成了一个变量函数表达式。
不知道是不是这个意思的?

阅读 3.4k
4 个回答
[type.DONE_TODO](state,id){
    //...
}

[type.DONE_TODO]使用变量值做属性名
(state,id)定义方法签名
{}方法体

const type.DONE_TODO = 'functionName'
[type.DONE_TODO](state,id){
    //...
}

等价于

functionName:function functionName(state,id){
}

差不多就是你理解的那样,因为平时我们写对象时,对象的属性都是些死的,比如:

var a = { name: 'XXX' }

那怎么让属性是动态的呢?

[type.DONE_TODO](state,id){
    //...
}

这里[]里面变量的值就是属性名称。

[type.DONE_TODO]可计算的属性名,来自src/vuex/modules/todo/mutation_type.js
(state,id) 载荷
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏