Comment utiliser JSON pour créer un objet qui Hérite de Type d'Objet?
Je sais comment les utiliser JSON pour créer des objets, mais il ne semble pas être à l'écart de l'utilisation de JSON pour créer un objet d'un type d'objet spécifique.
Voici un exemple d'un Objet et la création d'une instance de celui-ci:
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
Maintenant, je voudrais utiliser JSON pour créer un nouvel objet de Personne, de sorte que le GetFirstName fonctionne sur elle.
Voici quelque chose comme ça, je suis à la recherche à faire (mais ce code ne fonctionne pas):
var you = new Person() { FirstName: "Mike" };
//OR
var you = new Person{ FirstName: "Mike" };
Est-il de toute façon à l'utilisation de JSON pour créer un objet d'un type spécifique?
Mise à JOUR: Mon exemple avec l'objet de Personne, c'est juste pour simplifier la question. En fait, je ne suis pas en mesure de modifier les constructeurs des objets réels que j'ai besoin de créer des instances d'. Les objets font partie d'une bibliothèque tierce.
Mise à JOUR: à l'Aide de certaines des suggestions ci-dessous, j'ai été en mesure de trouver un moyen de créer un objet qui hérite de l'original, et d'accepter de JSON dans son constructeur. C'est soigné!
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!
OriginalL'auteur Chris Pietschmann | 2008-10-09
Vous devez vous connecter pour publier un commentaire.
Je ne l'imagine pas. Je voudrais créer une fonction sur la Personne de la classe à l'initialisation à partir d'un objet JSON, si j'étais vous.
Si vous ne savez pas ce que la classe de l'objet JSON a été représentant à l'avance, peut-être ajouter une variable supplémentaire dans votre JSON.
Et puis avoir un " générateur de fonction qui l'interprète.
Mise à jour: puisque vous dites que la classe fait partie d'une bibliothèque tierce, qui vous ne pouvez pas modifier, vous pouvez prolonger la classe avec le prototypage, ou écrire une fonction qui vient de remplit la classe externe.
par exemple:
ou
OriginalL'auteur nickf
Vous pourrez vous permettre de new Personne() à accepter un objet pour remplir les attributs avec comme paramètre.
OriginalL'auteur Aupajo
Vous pouvez retirer un objet de la leur. Votre constructeur peut accepter l'objet que vous voulez, mais l'appel de leur constructeur dans un affectée de la mode:
Ou quelque chose comme ça 🙂
OriginalL'auteur harley.333