Javascript Chrome扩展名:storage.set()不接受变量作为关键字

Javascript Chrome扩展名:storage.set()不接受变量作为关键字,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在尝试在扩展中使用chrome.storage.local。这是我编写的一个测试: chrome.storage.local.set({'test': 'foo'}, function() { chrome.storage.local.get('test', function(data) { console.log("Test Result: ") console.log(data); }) }); var keyword = 'test2'; chrome.sto

我正在尝试在扩展中使用
chrome.storage.local
。这是我编写的一个测试:

chrome.storage.local.set({'test': 'foo'}, function() {
  chrome.storage.local.get('test', function(data) {
    console.log("Test Result: ")
    console.log(data);
  })
});

var keyword = 'test2';
chrome.storage.local.set({keyword: 'foo'}, function() {
  chrome.storage.local.get(keyword, function(data) {
    console.log("Test 2 Result: ")
    console.log(data);
  })
});
第一个测试和第二个测试之间的唯一区别是,我用一个保存字符串
test2
的变量替换了字符串
test
。现在,你希望这两个都能起作用,对吗?输出为:

Test Result: 
Object {test: "foo"}
Test 2 Result: 
Object {}

我做错了什么?

您不能将json对象的键设置为变量,先创建一个对象,然后设置键和值

var obj = {};
obj[keyword] = 'foo'
chrome.storage.local.set(obj, function() {

哦,是的,事实上是这样!有人能把这个标记为复制品吗?对不起,吵闹了。。