2015-10-12 54 views
1

在我的代碼我使用如何重寫哈希assignement以更優雅的方式

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

事情做工精細,直到「關鍵」分配給另一個變量(持有者)。在這種情況下,明顯的解決方案:

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條線是不必要的。

是否有更有效的方式來創建並傳遞散列?

謝謝。

回答

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

console.log(hash); 

請記住,這隻能從ES6。您始終可以看到其兼容性here。在這種特殊情況下,你應該看計算屬性名稱功能,它在對象文字擴展名部分,調用:計算屬性

+1

您應該指出,這使用了ES6功能。它不會在任何地方使用。 – joews

+0

剛剛做了幾秒鐘之前。謝謝。 –

+0

你可以鏈接兼容性表嗎?剛剛學習JS的人可能不知道哪些ES6功能在哪裏工作(我知道我不知道所有這些功能)。 – joews