0

可能重复:
将 json 数据转换为附加方法的对象的最简单方法?
在 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(字符串化)保存在浏览器的本地存储中

当我读回对象时,我得到了数据,但我没有得到附加的方法,即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 对象上,这是唯一的方法吗?

4

1 回答 1

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 对象。

于 2013-01-10T05:04:44.527 回答