Javascript 数组函数类型syntex

Javascript 数组函数类型syntex,javascript,Javascript,我在看别人的代码,他写了一个语法,看起来像这样 export const actions = { [ACTIONS.SOMEACTION.ATTEMPT.name] ({ commit }, payload) { return new Promise((resolve, reject) => { 有人能解释一下这个人在这里想干什么吗?就像有人可以解释这个语法一样?它要么在对象内部,要么在类内部,并声明了一个方法 [ACTIONS.SOMEACTION.trunt.

我在看别人的代码,他写了一个语法,看起来像这样

export const actions = {
    [ACTIONS.SOMEACTION.ATTEMPT.name] ({ commit }, payload) {
        return new Promise((resolve, reject) => {

有人能解释一下这个人在这里想干什么吗?就像有人可以解释这个语法一样?

它要么在对象内部,要么在类内部,并声明了一个方法

[ACTIONS.SOMEACTION.trunt.name]
是一个 ,方法名称将是存储在
ACTIONS.SOMEACTION.trument.name
中的任何名称

({commit},payload)
这是方法采用的两个参数,第一个参数是获取的对象,因此
commit
属性从中取出

然后,该方法创建并返回一个:

这是与一起使用的

这里,

[ACTIONS.SOMEACTION.ATTEMPT.name]
将转换为函数名(由于计算机属性名)。例如,如果
ACTIONS.SOMEACTION.trunt.name
等于
foo
则您的结果将在某种程度上等同于:

foo({commit}, payload) {
  // ... function body ...
}
以后可以使用
.foo(arg1,arg2)

注意:由于我们在一个对象内,所以可以省略function关键字

{commit}
正在使用可用于从对象“解包”属性的解构赋值。在这种情况下,
commit
将等于
arg1
中的
commit
属性。因此,如果您这样使用函数:

.foo({commit:10, id:1}, "bar")

然后,函数将从第一个参数对象“解包”
10
,并使其等于
commit

代码中有两件事

[ACTIONS.SOMEACTION.trument.name](…
这是为名称将等于
ACTIONS.SOMEACTION.trument.name的值的对象设置方法

{commit}
取出作为第一个参数传递到此函数的对象的属性
commit

例如
let str=“func”
设obj={
[str]({commit},其他){
日志(提交,其他);
}
}

obj.func({commit:“commit的值”},“Other parameter”);
您能在看到它的地方给出任何引用吗?这是否出现在某个对象的类/对象中
.foo({commit:10, id:1}, "bar")
({ commit }, payload)