传递一个变量作为属性名

问题描述:

我需要通过一个变量作为一个属性名称在下面的函数:传递一个变量作为属性名

var value; 
chrome.storage.local.set({name: value}); 

我已经使用ES6实现了这一 - 对象常量扩展 - 计算属性:

var value; 
var name; 
chrome.storage.local.set({[name]: value}); 

ES6开始在版本42(仅限严格模式)和版本49以外的严格模式下实施。根据Browser Market Share大约5%仍然使用Chrome 45,所以我认为使用ES6并不是一个好主意。

此外,我使用WebExtensions将其移植到Firefox。

有没有可以通过更多浏览器版本处理的解决方案?

+0

您可以使用括号表示法。 – guest271314

+0

Isn'这是我在我的例子中使用? –

+0

'var obj = {}; obj [name] = value;' – guest271314

可以使用括号表示法来设置对象的属性名称。请参阅chrome.storage.local.set using a variable key namechrome.storage

var value = "123"; 
var name = "abc"; 
var obj = {}; 
obj[name] = value; 
chrome.storage.local.set(obj);