【发布时间】:2016-11-12 15:35:47
【问题描述】:
我需要在以下函数中传递一个变量作为属性名:
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。
有没有可以被更多浏览器版本处理的解决方案?
【问题讨论】:
-
您可以使用括号表示法。
-
这不是我在示例中使用的吗?
-
var obj = {}; obj[name] = value; -
你能告诉我我应该在
chrome.storage.local.set({[name]: value});这行中改变什么吗?我完全按照你的建议做了。 -
@JuliusS。等等,这不是 Chrome 扩展的代码吗?那么你为什么要关心它是否适用于其他浏览器呢?
标签: javascript google-chrome google-chrome-extension ecmascript-6