Quelle est la bonne/meilleure façon d'étendre une classe javascript afin que la classe B hérite de tout de la classe A (classe B étend A)?Javascript étend la classe
Répondre
Jetez un oeil à Simple JavaScript Inheritance et Inheritance Patterns in JavaScript.
La méthode la plus simple est probablement l'héritage fonctionnel mais il y a des avantages et des inconvénients.
Deuxième lien est mort. – Jarrett
Le deuxième lien est maintenant ici: http://bolinfest.com/javascript/inheritance.php –
Douglas Crockford a quelques très bonnes explications d'héritage en JavaScript:
- prototypal inheritance: la voie « naturelle » de faire les choses en JavaScript
- classical inheritance: plus proche de ce que vous trouverez dans la plupart des langages OO, mais court sorte de contre le grain de JavaScript
extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
return destination;
};
Vous pouvez également ajouter des filtres dans la boucle for.
Ceci n'est ni ce que OP a demandé ni correct "extend" - vous devriez parcourir iter.keys ou au moins vérifier hasOwnProperty –
Besoins hasOwnProperty vérifie et écrase les méthodes et les propriétés si elles sont identiques, sans possibilité d'appeler la méthode super classe plus tard. –
Actuellement ... existe-t-il un autre moyen, mais b.prototype = new a; – xpepermint
JavaScript n'a pas de cours. Par conséquent, toute cette question n'a pas de sens. Parlez-vous de Java? Ou ActionScript? Ceux-ci * ont * des classes, mais ils n'ont absolument rien à voir avec JavaScript. Ou parlez-vous d'une bibliothèque JavaScript qui implémente l'OO basé sur les classes en JavaScript, comme MooTools par exemple? Dans ce cas, la réponse dépend de la bibliothèque dont vous parlez. –
Il y a mon objet Class: https://github.com/reduardo7/sjsClass/blob/master/sjsclass.js –