将变量作为属性名称传递

时间:2016-11-12 06:29:42

标签: javascript google-chrome google-chrome-extension ecmascript-6

我需要在以下函数中将变量作为属性名称传递:

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

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

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

ES6开始在版本42(仅严格模式)和严格模式之外的版本49中实现。根据{{​​3}},约有5%仍使用Chrome 45,因此我认为使用ES6并不是一个好主意。

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

是否有更多浏览器版本可以处理的解决方案?

1 个答案:

答案 0 :(得分:4)

您可以使用括号表示法来设置对象的属性名称。请参阅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);