传递一个变量作为属性名
问题描述:
我需要通过一个变量作为一个属性名称在下面的函数:传递一个变量作为属性名
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。
有没有可以通过更多浏览器版本处理的解决方案?
答
可以使用括号表示法来设置对象的属性名称。请参阅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);
您可以使用括号表示法。 – guest271314
Isn'这是我在我的例子中使用? –
'var obj = {}; obj [name] = value;' – guest271314