【发布时间】:2019-06-12 15:29:08
【问题描述】:
最近我在寻找一种方法来重写一个丑陋的 switch/case 语句,结果遇到了this Medium article。
我将我的 switch/case 重写为一个 es6 函数,如下所示:
const url = category => ({
'itemA': itemAService.getItemCategories(payload),
'itemB': itemBService.getItemCategories(payload),
})[category]
当我用const response = url(category); 之类的东西调用这个函数时,它可以工作,太棒了!但后来我想知道函数末尾的 [category] 到底是什么意思。我想也许它是一个立即调用的函数,但这似乎也不对。
文章提到它是一个对象字面量,但是当我查看 MDN 文档时,我找不到任何解释这是什么或它做什么的东西,甚至找不到任何展示同一事物的示例。
那么它有什么作用呢?
【问题讨论】:
-
与
object[property]相同。更多信息:MDN. -
它只是一个密钥访问器。该函数返回一个对象,所以本质上它只是分配一个对象,然后使用括号表示法来选择传入的对象
标签: javascript ecmascript-6 object-literal