Tenter de désérialiser les données JSON et mettre à jour le prototype de chaque objet et hériter d'une fonction commune. Toutefois, le script suivant génère une erreur "people [0] .getFullName n'est pas une fonction". Le prototype des objets désérialisés semble être indéfini après l'affectation.Prototype Javascript non défini après la désérialisation d'eval
<html>
<head>
<script>
var json = '[ {"firstName": "John", "lastName": "Smith"}, {"firstName": "Nancy", "lastName": "Jones"} ]';
var people;
eval('people = ' + json);
function Person() { }
Person.prototype.getFullName = function() {
return this.firstName + ' ' + this.lastName;
}
//assign prototype
for(var i=0; i < people.length; i++){
people[i].prototype = new Person();
}
if(people[0].getFullName() !== 'John Smith')
alert('Expected fullname to be John Smith but was ' + people[0].getFullName());
</script>
</head>
</html>
La boucle de copie de propriété sur le CTOR fournit la meilleure solution en retard pour ce que j'essaie de faire. THX! –