Я знаю, как использовать 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!