chrome.storage.sync.set变量键

dta*_*her 5 javascript google-chrome google-chrome-extension

我正在编写将使用chrome存储API的chrome扩展程序.我试图使用键的变量并将值设置为null:

function save() {
    var item = $("#item").val();
    chrome.storage.sync.set({item:null}, function(){
        console.log("sync settings saved");
    });
}
Run Code Online (Sandbox Code Playgroud)

然后我运行以下内容来查看所有已保存的数据:

chrome.storage.sync.get(null, function(items) {
    console.log(items);
});
Run Code Online (Sandbox Code Playgroud)

控制台输出是:

Object {item: ""}
Run Code Online (Sandbox Code Playgroud)

所以基本上它是设置的,但不是用变量的值保存它,而是用变量名保存它.

任何想法如何让它来保存变量值?

Paw*_*tyć 7

这是JavaScript中的预期行为.这是您在对象中定义键的方式.

如果要将变量值设置为对象键,可以执行以下操作:

var item = $("#item").val();
var save = {};
save[item] = null;
chrome.storage.sync.set(save)
//...
Run Code Online (Sandbox Code Playgroud)

然后save对象不会使用"item"作为键,但它的值.