Bil*_*tin 5 javascript ecmascript-6
我在网上发现了一些我不明白的狂野代码:
return Object.assign({}, state, {
[action.subreddit]: posts(state[action.subreddit], action)
})
Run Code Online (Sandbox Code Playgroud)
在[action.subreddit]做什么?我认为对象键必须是字符串,但这似乎是一个数组?
我希望机械地理解这段代码是如何工作的.
谢谢!
这不是一个数组作为键,它是使用变量(/一个计算属性)作为键的es6方式.考虑一下:
var a = "foo";
function getKey() {
return "myKey";
}
var obj = {
[a] : "bar",
[getKey()] : "baz"
};
console.log(obj.foo); // bar
console.log(obj.myKey) // baz
Run Code Online (Sandbox Code Playgroud)
因此,[action.subreddit]只需将密钥的名称设置action.subreddit为持有的任何值即可.
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |