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)