3
Je sais que je pouvais faire un simple héritage prototypal en JavaScript comme ceci:Héritage profond avec JavaScript?
var Parent = function() {
};
var Child = function() {
}
Child.prototype = new Parent();
Child.prototype.constructor = Child;
Cependant, je suis curieux de la façon dont on pourrait accomplir plus profondes héritages? Qu'en est-il de l'héritage multiple, est-ce possible?
Bonne réponse. J'ajouterai que même si vous ne pouvez pas faire de l'héritage multiple, il n'est pas difficile de faire une approche de "mix-in" en utilisant, par exemple, les fonctions "extend" fournies par des bibliothèques telles que jQuery ou underscore.js. –
Je ne vois pas en quoi ce n'est pas l'héritage multiple (si vous pouvez faire l'héritage du tout en javascript). Voici une fonction extend, qui présente l'avantage supplémentaire de rendre la méthode superclass disponible: var extend = fonction (classObject, superClass) { pour (var i dans superClass.prototype) { if (classObject.prototype [i] classObject.prototype ["_ super_" + i] = superClass.prototype [i]; sinon classObject.prototype [i] = superClass.prototype [i]; } }; – rob
étendre est une sorte d'héritage multiple, je suppose. Ce n'est pas l'héritage multiple, cependant, c'est "ajouter toutes les propriétés d'un objet à un autre". par exemple. instanceof ne fonctionnera pas correctement. c'est une course de fou d'appliquer des techniques de POO au javascript de toute façon, cependant, car c'est vraiment l'héritage du prototype. écrire du code et dire «ceci est un héritage multiple» ne fait qu'embrouiller le problème. – Claudiu