gpt4 book ai didi

javascript - 无法更改从 localStorage 检索的对象的属性

转载 作者:行者123 更新时间:2023-11-28 00:53:32 25 4
gpt4 key购买 nike

我使用以下代码片段来检索之前存储在 localStorage 中的对象,但由于某种原因,当尝试修改它时,该对象仍然是不可变的。

这就是我创建对象的方式:

if(typeof(Storage) !== "undefined") {
if(!localStorage.Obj){
localStorage.Obj = new Object();
}
var Obj = localStorage.Obj;

} else {
if(!$.cookie("Obj")){
$.cookie("Obj", new Object(), {
expires : 7, // Days
domain : 'localhost:8080',
secure : true
});
}
var Obj = $.cookie("Obj");
}

这是我尝试修改对象的地方:

var login = function(email, passwd){

$.ajax({
url: "http://127.0.0.1/api/v1/login",
type: "POST",
data: { email: email, password: SHA256_hash(passwd), platform: getBrowserName(), osVersion: getOsName()},
beforeSend: function(xhr){xhr.setRequestHeader('apiKey', "46d1e2f6-cf37-4275-bc1c-d674b12cc9bf");},
success: function(data, status, xhr){
Obj["logged_in"] = true;
Obj["sessionKey"] = data.sessionKey;
Obj["user_id"] = data.userID;
Obj["time_format"] = data.timeFormat;
Obj["first_name"] = data.firstName;
Obj["last_name"] = data.lastName;
},
error: function(data, status, xhr){
console.log(data);
}
});

if(Obj.logged_in){
window.location.replace("http://127.0.0.1/users/" + Obj.user_id + "/todos");
}
};

我需要指出三件事:

  • 我正在使用 jQuery
  • 这两个代码位于不同的文件中,但加载顺序是正确的。
  • 使用 console.log(Obj) 时,我得到以下输出:"[object Object]"
  • 提前致谢。

最佳答案

根本问题是 localStorage 只存储字符串数据。

对于数组和对象,可以使用 JSON.stringify() 将它们简单地转换为字符串当从 localStorage 中提取字符串时,可以使用 JSON.parse() 将字符串转换为 javascript 对象或数组。

一个有用的小型库是 store.js

关于javascript - 无法更改从 localStorage 检索的对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26496511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com