Maison  >  Article  >  interface Web  >  Recommander la meilleure façon d'implémenter l'héritage en JavaScript

Recommander la meilleure façon d'implémenter l'héritage en JavaScript

PHPz
PHPzoriginal
2016-05-16 16:31:361187parcourir

Ce chapitre présente la meilleure façon d'implémenter l'héritage JavaScript en utilisant la méthode d'appel pratique combinée à la méthode de chaîne de prototypes. C'est très pratique et les amis dans le besoin peuvent s'y référer.

Le moyen le plus simple d'implémenter l'héritage JavaScript est la méthode d'appel (ou méthode d'application) et la méthode de chaîne de prototypes, mais les deux méthodes ont des défauts et leur mélange est un bon moyen d'implémenter l'héritage. Voici un exemple :

function Animal(age){
    this.age = age;
}
Animal.prototype.sayAge = function(){
    window.alert("My age is "+this.age+"!");
};
function Dog(age,name){
    Animal.call(this,age);
    this.name = name;
}
Dog.prototype = new Animal();
Dog.prototype.sayName = function(){
    window.alert("I am a "+this.name+"!");
};
var dog = new Dog(15,"dog");
dog.sayName();
dog.sayAge();

Pour la classe Animal, elle a un attribut de champ age et un attribut de fonction sayAge. La méthode sayAge est définie de manière prototype. La classe Dog doit hériter d'Animal et ses attributs de champ incluent le nom en plus de l'âge. Grâce à Animal.call(this,age);, Dog peut hériter de l'attribut de champ age d'Animal et l'initialiser. Le premier paramètre de la méthode d'appel est le pointeur this de la classe héritée, et le deuxième paramètre est le paramètre du constructeur de la classe Animal. En fait, l'héritage peut être obtenu uniquement via la méthode d'appel, mais la seule exigence est que les attributs de fonction de la classe parent doivent être définis dans le constructeur, ce qui ne convient pas aux attributs de fonction ici à définir à l'aide de la méthode prototype ( utiliser la méthode prototype pour définir les propriétés de la fonction est plus intuitif que de les définir dans un constructeur). Pour hériter des attributs de fonction définis dans le mode prototype d'Animal, l'instruction requise est "Dog.prototype = new Animal();". La fonction sayName() de la classe Dog est son propre attribut de fonction.

En plus de cette manière la plus classique d'implémenter l'héritage, il existe actuellement quelques bibliothèques gratuites disponibles. Mais penser à toutes sortes de bibliothèques est une tâche écrasante. Étudions-la quand nous en avons le temps et le besoin !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn