可能重复:
Easiest way to convert json data into objects with methods attached?
Casting plain objects to function instances (“classes”) in javascript
我有一个如下对象:
var Person = function(name, age) {
this.name = name,
this.age = age;
}
Person.prototype.talk = function(message) {
console.log(message);
}
我按如下方式创建对象:
var person = new Person("Test", 20);
然后将这些对象保存为浏览器的本地存储中的JSON(stringify)
当我读回对象时,我得到了数据,但我没有附加方法,即talk()不再作为方法可用。我该如何重新附上它们?
window.localStorage["person"] = JSON.stringify(new Person('Test', 20));
var person = window.localStorage["person"];
person.talk("Hello");
我得到的错误是
Uncaught TypeError: Object {"name":"Test","age":20} has no method 'talk'
明显,对吗?但是我如何判断这是一个Person对象呢?或者我应该将读取对象中的属性复制到新的Person对象上,这是唯一的方法吗?
答案 0 :(得分:1)
Or should I just copy the attributes from the read object onto a new Person object, is that the only way?
是的,创建一个PersonFactory或使用类似的设计模式从表示Person的json数据构造一个新的Person对象。