L'héritage en JavaScript s'effectue via la chaîne de prototypes : chaque objet contient un autre objet comme prototype, et l'objet hérite des propriétés de ce prototype. Pour chaque objet, vous pouvez accéder à son objet prototype des trois manières suivantes :
1.__proto__. L'objet prototype d'un objet est accessible via son attribut __proto__. Cette propriété n'est prise en charge que dans Firefox, Safari et Chrome, pas dans IE et Opera.
2.Object.getPrototypeOf(). Vous pouvez transmettre l'objet en tant que paramètre à la méthode Object.getPrototypeOf(), et l'objet prototype de l'objet sera renvoyé après l'exécution. Cette méthode n'est prise en charge que dans la norme ECMAScript 5.
3.o.constructeur.prototype. Accédez à l'objet prototype en obtenant d'abord la fonction constructeur de l'objet, puis en accédant à la propriété prototype de la fonction constructeur. La condition préalable à l'utilisation de cette méthode est qu'il existe un attribut constructeur pointant vers le constructeur dans l'objet.
Pour déterminer s'il existe une relation de chaîne prototype entre deux objets, vous pouvez utiliser la méthode isPrototype() :
Pour tous les objets créés avec des littéraux, leurs objets prototypes sont Object.prototype (en tant qu'objet spécial, Object.prototype n'a pas d'objet prototype) :
Pour tous les objets créés avec l'opérateur new, leurs objets prototypes sont les attributs prototypes de la fonction constructeur :
Le processus d'utilisation de l'opérateur new pour créer des objets en JavaScript est le suivant :
1. Créez un nouvel objet vide.
2. Pointez l'attribut __proto__ de cet objet vers l'attribut prototype de la fonction constructeur.
3. Utilisez cet objet comme paramètre pour exécuter la fonction constructeur.
Du processus de création ci-dessus, on peut conclure que tous les objets construits à partir de la même fonction constructeur ont leurs attributs __proto__ (c'est-à-dire leurs objets prototypes) égaux, c'est-à-dire qu'il n'y a qu'un seul objet prototype :