我知道如何使用JSON來創建對象,但似乎沒有辦法使用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!
這是非常微軟的Ajax是如何工作的。您可以定義一個返回特定類型的方法。 ajax層查詢類型並創建一個js對象代理。然後,所有的json調用都會返回一個'__type'參數,告訴庫使用哪個代理實例化對象。 – Travis 2008-10-09 00:13:32