gpt4 book ai didi

javascript - 我可以将对象原型(prototype)保存在本地存储中吗?

转载 作者:行者123 更新时间:2023-11-29 18:06:31 25 4
gpt4 key购买 nike

我有带有自定义方法的 JS 对象作为原型(prototype)(例如 Foo.prototype.myAwesomeMethod)。如果我将我的对象加载到 localStorage 中并稍后获取它,我将失去这些方法。

var foo = new Foo()
console.log(foo.myAwesomeMethod()) // WIN

localStorage.setItem('foo', foo)

foo = localStorage.getItem('foo')
console.log(foo.myAwesomeMethod()) // FAIL...

是否可以将对象的原型(prototype)保存在 localStorage 中?如果不是,如何正确地重新实例化该类?

最佳答案

你可以试试这个

function Foo() {
this.bar = 1;
}
Foo.prototype.myAwesomeMethod = function () {
return "And the winner is " + this.bar;
}
var foo;

window.onload = function () {
foo = new Foo();
foo.bar = 3;
console.log(foo.myAwesomeMethod()); // "And the winner is 3"
var test = JSON.stringify(foo); //localStorage.setItem('foo', foo);
foo = JSON.parse(test); // = localStorage.getItem('foo');
foo.__proto__ = new Foo(); // <--------------
console.log(foo.myAwesomeMethod()); // "And the winner is 3"
});

编辑:我以前的代码未经测试,没有工作,这是工作代码

关于javascript - 我可以将对象原型(prototype)保存在本地存储中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30777814/

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