如何以更优雅的方式重写哈希赋值

How to rewrite hash assignement in more elegant way

在我的代码中我使用

callMethodWithHash({ 'key': "value" });

一切正常,直到 'key' 分配给另一个变量 (keyHolder)。在那种情况下显而易见的解决方案:

var keyHolder = 'key';
callMethodWithHash(keyHolder: "value");

不起作用 (how to assign variable value as variable name in a hash?),我需要再写几行:

var keyHolder = 'key';
var hash = {};
hash[keyHolder] = "value";
callMethodWithHash(hash);

正在学习JS,想开发一个好的风格,但是感觉这3行没必要长

是否有更有效的方法来创建和传递哈希?

谢谢。

var keyHolder = "key",
    hash = { [keyHolder]: "value" };

console.log(hash); 

请记住,这仅在 ES6. You can always see its compatibility here 中可用。在这种特殊情况下,您应该查看 computed 属性 name 功能,它位于 object literal extensions 部分,称为:计算属性.