我看到了很多与我的问题类似的问题,但没有完全回答我的问题。
我的问题是我需要存储一个对象的整个实例,这意味着除了他的字段之外,我还需要它的相关方法。
我的代码:
存储对象:
$.cookie(key, JSON.stringify(value), { 过期:过期 });
检索对象:
var value = $.cookie(key);
if (值 === null || 值 === 未定义) {
返回值=“”;
}
返回 JSON.parse(value);
我从 cookie 获取的对象有其字段,但该对象没有我在存储之前附加的方法。
为了让你们/女士们能够理解我正在尝试使用什么对象,我提供了以下 fiddle :https://jsfiddle.net/5hhgtnxh/
最佳答案
如果没有一些技巧,您根本无法将方法或函数保存到 cookie 或本地存储,JSON.stringify
将省略键,而函数仅保留数据。这对于保存方法是必要的吗?它们已经在代码中了。您可以将对象拆分为数据和方法,仅将数据保存到 cookie/localstorage。
顺便说一句,由于 JSON 不是用于 Javascript,而是用于在不同系统或组件之间传递数据,因此它不允许函数作为值。请参阅http://json.org/了解详细的格式规范。
非常简单的例子:
var CustomObject = function (data) {
var data = data;
this.getX = function () {
return data.x;
};
this.setX = function (x) {
data.x = x;
};
this.getData = function () {
return data;
};
};
var o = new CustomObject({});
o.setX(42);
$.cookie('myObj', JSON.stringify(o.getData()));
//later, let's initialize obj from cookie
var custData = $.cookie('myObj');
var o2 = new CustomObject(custData);
关于javascript/jQuery 在 cookie 中存储对象并检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32399970/