J'utilise l'héritage prototypique et je souhaite avoir des objets avec des tableaux d'instances. Donc, si je dérive des objets d'un objet avec un tableau d'instances et que j'accède au tableau, tous partagent le tableau. Je veux pousser quelque chose au tableau et changer seulement le tableau dans l'objet réel, pas dans tous les autres.Problème avec l'héritage prototypique et le tableau d'instance
Qu'est-ce qu'une solution élégante à ce problème avec l'utilisation de l'héritage prototypique standard et Object.create?
var sys = require('sys');
var obj ={
data: [],
add: function(what){
this.data.push(what)
}
};
var one = Object.create(obj);
one.add(1);
var other = Object.create(obj);
other.add(2);
sys.puts(other.data.length); // is 2, but should be 1
Je veux utiliser l'héritage prototypique avec Object.create – Peterfia
Vous pouvez toujours utiliser object.create. Mais vous devez exécuter le constructeur pour initialiser l'objet avec la variable d'instance this.data. var one = Object.create (ObjectName.prototype); ObjectName.call (un); un.add (1); – Marco