JavaScript Héritage pseudo-classique


Exemple

C'est une émulation de l'héritage classique utilisant l' héritage prototypique qui montre à quel point les prototypes sont puissants. Il a été fait pour rendre le langage plus attrayant pour les programmeurs venant d'autres langues.

6

REMARQUE IMPORTANTE : depuis ES6, il n’est pas logique d’utiliser un héritage pseudo-calssical car le langage simule des classes conventionnelles . Si vous n'utilisez pas ES6, vous devriez le faire . Si vous souhaitez toujours utiliser le modèle d'héritage classique et que vous vous trouvez dans un environnement ECMAScript 5 ou inférieur, alors le pseudo-classique est votre meilleur pari.

Une "classe" est juste une fonction faite pour être appelée avec le new opérande et utilisée comme constructeur.

function Foo(id, name) {
    this.id = id;
    this.name = name;
}

var foo = new Foo(1, 'foo');
console.log(foo.id);

Sortie de la console

1

foo est une instance de Foo. La convention de codage JavaScript indique que si une fonction commence par une majuscule, elle peut être appelée en tant que constructeur (avec le new opérande).


Pour ajouter des propriétés ou des méthodes à la "classe", vous devez les ajouter à son prototype, qui se trouve dans la propriété prototype du constructeur.

Foo.prototype.bar = 'bar';
console.log(foo.bar);

Sortie de la console

bar

En fait, ce que Foo fait en tant que "constructeur" consiste à créer des objets avec Foo.prototype comme prototype.


Vous pouvez trouver une référence à son constructeur sur chaque objet

console.log(foo.constructor);

fonction Foo (id, name) {...

console.log({ }.constructor);

function Object () {[code natif]}

Et aussi vérifier si un objet est une instance d'une classe donnée avec l'opérateur instanceof

console.log(foo instanceof Foo);

vrai

console.log(foo instaceof Object);

vrai