gpt4 book ai didi

类似于 Array function : [variable] ({ key }, arg) { } 的 JavaScript 语法

转载 作者:搜寻专家 更新时间:2023-11-01 04:28:19 25 4
gpt4 key购买 nike

我被要求研究雇主的代码,在代码中,雇主做了这样的事情:

export const actions = {
[ACTIONS.ITEM_LIST.LOAD.name] ({commit}, payload) {
const type = payload

现在,在此,我无法纠正这行代码

 [ACTIONS.ITEM_LIST.LOAD.name] ({commit}, payload) {

比如它是一个函数还是什么?有人可以向我解释上面的语法吗?

最佳答案

新式 JavaScript 允许对象文字表达式中的属性名称(调用 { } block 初始化 actions 的内容)计算 属性名称通过允许 [ ] 作为属性名称而不是过去的标识符或字符串常量来从表达式中提取。

所以这意味着 ACTIONS.ITEM_LIST.LOAD.name 应该被评估,并且最终成为的字符串值被用作对象的函数属性的名称。 (这也是该语言的一个新特性;以前的属性必须是 name : value 严格)。

现在在该函数的形式参数列表中,{commit} 是一个解构 形式参数。这意味着该函数期望第一个参数是一个对象,因此在函数内部,参数(变量)commit 应该绑定(bind)到该对象的“commit”属性的值(或undefined 如果没有这样的属性)。

因此,如果我们出于示例目的假设 ACTIONS.ITEM_LIST.LOAD.name 的计算结果为字符串“xyz”,那么就可以调用:

var result = actions.xyz({ foo: "bar", commit: "everything" }, somePayload);

在函数中,字符串“everything”将是 commit 参数的值。

关于类似于 Array function : [variable] ({ key }, arg) { } 的 JavaScript 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54879110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com