__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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables