我知道如何使用 JSON 来创建对象,但似乎没有办法使用 JSON 来创建特定对象类型的对象。
这是一个对象的示例并创建它的一个实例:
Person = function() { };
Person.prototype = {
FirstName: null,
GetFirstName: function() {
return this.FirstName;
}
};
//Create an instance of the Person Object
var me = new Person();
me.FirstName = "Chris";
alert(me.GetFirstName()); //alert the FirstName property
现在,我想使用 JSON 创建一个新的 Person 对象,以便 GetFirstName 函数对其进行处理。
这是我想做的事情(但这段代码不起作用):
var you = new Person() { FirstName: "Mike" };
// OR
var you = new Person{ FirstName: "Mike" };
反正有没有使用 JSON 来创建一个特定类型的对象?
更新:我的 Person 对象示例只是为了简化问题。事实上,我无法修改需要创建实例的实际对象的构造函数。这些对象是第三方库的一部分。
更新:使用下面的一些建议,我能够找到一种方法来创建一个继承自原始对象的对象,并在其构造函数中接受 JSON。这很整洁!
personWrapper = function(obj){
for(var o in obj){
this[o] = obj[o];
}
};
personWrapper.prototype = new Person();
var you = new personWrapper({FirstName: "Chris"});
alert(you.GetFirstName());
alert(you instanceof Person); // returns True - we are successfully inheriting from Person!