Javascript 获取或设置对象内部的localStorage值
我在这里玩本地存储。并希望它获取或设置对象内部本地存储的值。我知道set或get项目是推荐的操作,但我发现: LocalStorage也可以通过使用来设置:Javascript 获取或设置对象内部的localStorage值,javascript,jquery,html,local-storage,javascript-objects,Javascript,Jquery,Html,Local Storage,Javascript Objects,我在这里玩本地存储。并希望它获取或设置对象内部本地存储的值。我知道set或get项目是推荐的操作,但我发现: LocalStorage也可以通过使用来设置:LocalStorage.myvalue=“something” 为了获取当前值,我们只需调用:localStorage.myvalue 现在我把它放在一个对象中,比如: var myObj = { myval: localStorage.myvalue } 当我设置myObj.myval=“somethingain”的值时 那么这就不
LocalStorage.myvalue=“something”代码>
为了获取当前值,我们只需调用:localStorage.myvalue代码>
现在我把它放在一个对象中,比如:
var myObj = {
myval: localStorage.myvalue
}
当我设置myObj.myval=“somethingain”
的值时
那么这就不起作用了,通常通过这种方法可以很容易地设置或获取对象,但是在这种情况下为什么会发生呢
通过调用myObj.myval
可以检索值,但是为什么我不能在这里设置值
所以请告诉我哪里错了?这似乎可以通过以下小调整来完成
更新:
对你来说似乎太长了,速记更好吗
var myObj = {
myval: function(val){
return (typeof (val) === 'undefined' ? localStorage.myvalue : localStorage.myvalue=val);
}
}
而不是像这样叫它集合
myObj.myval("Add this");
或者
myObj.myval();
小提琴:
希望这有帮助。您可以使用和
或者使用and运算符
但请记住,旧浏览器不支持这些功能 首先
localStorage.a = "value";
// create object
var ob = { a: localStorage.a };
console.log(ob.a); // "value"
当你这样做的时候:
ob.a = "asfasf"
console.log(ob.a); // "asfasf"
console.log(localStorage.a); "value"
该值不会更改,因为ob.a等于值,它不是一个引用,而是一个值,
您可以通过执行localStorage.a
工作版本
var ob = { a: function(value){ return localStorage.a = value; }};
ob.a("value"); // returns "value"
console.log(localStorage.a); // "value"
具体的问题是,您将一个原语定义为localStorage对象的属性,而不是将对象定义为localStorage的属性,因此您没有引用,只有一个值
解决方案可以是将整个localStorage定义为如下属性:
var obj = { store: localStorage };
obj.store.setItem('key','a value');
obj.store.getItem('key');
是的,你说得对,但是,如果我也想要相同的返回值呢?请告诉我为什么我的代码不起作用的正确原因?我编辑了我的代码,这样你就可以对两个请求使用相同的对象,只需省略它将获得的值,并在()中添加它将设置的值,@fuserthrower User的缩写是什么?嗯,不确定,对不起。如果FuserThrowerr已经为您回答了这个问题,请务必接受他的回答:)。就我个人而言,我做这件事的方式就是我使用它的方式,看起来更干净。谢谢你的帮助……:)哦。。不要用抱歉!!测试此代码时返回值不起作用?未定义!!