我需要在以下函数中将变量作为属性名称传递:
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。
是否有更多浏览器版本可以处理的解决方案?
答案 0 :(得分:4)
您可以使用括号表示法来设置对象的属性名称。请参阅chrome.storage.local.set using a variable key name,chrome.storage
var value = "123";
var name = "abc";
var obj = {};
obj[name] = value;
chrome.storage.local.set(obj);