__proto__ VS. prototype en JavaScript

Cette figure montre à nouveau que chaque objet a un prototype. La fonction constructeur Foo a également la sienne __proto__qui est Function.prototype, et qui à son tour fait également référence via sa __proto__propriété à Object.prototype. Ainsi, répétez, Foo.prototype est juste une propriété explicite de Foo qui fait référence au prototype des objets b et c.

var b = new Foo(20);
var c = new Foo(30);

Quelles sont les différences entre __proto__et prototype?

enter image description here

Le chiffre a été tiré de dmitrysoshnikov.com.

Remarque : il existe maintenant une 2e édition (2017) de l'article de 2010 ci-dessus.


Solution du problème

__proto__est l'objet réel qui est utilisé dans la chaîne de recherche pour résoudre les méthodes, etc. prototypeest l'objet qui est utilisé pour construire __proto__lorsque vous créez un objet avec new:

( new Foo ).__proto__ === Foo.prototype
( new Foo ).prototype === undefined

Commentaires

Posts les plus consultés de ce blog

Comment signer la connexion OKEx API version 5 avec websockets ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"