__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 ?

Comment convertir une interface{} qui est vraiment une tranche de types dont le genre est reflect.Int32 en tranche de int32 ?

Créer un fichier CSV à partir d'un fichier texte avec des jetons d'en-tête à l'aide de scripts shell