Maison >interface Web >js tutoriel >Prototype vs `__proto__` : quelle est la vraie différence ?

Prototype vs `__proto__` : quelle est la vraie différence ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 15:19:14613parcourir

Prototype vs. `__proto__`: What's the Real Difference?

Prototype et __proto__ : Comprendre la distinction

Dans le domaine de la programmation orientée objet, comprendre les concepts de prototype et .__proto__ est crucial . Bien que ces termes puissent sembler synonymes, ils servent des objectifs distincts.

proto fait référence à la référence interne au prototype d'un objet, qui est l'objet qui fournit le comportement d'héritage pour l'objet donné. Il s'agit de l'objet réel utilisé lors de la chaîne de recherche pour résoudre les méthodes et les propriétés.

D'autre part, le prototype est une propriété explicite de la fonction constructeur qui pointe vers l'objet prototype. Lorsqu'un nouvel objet est créé à l'aide de la fonction constructeur, la propriété __proto__ du nouvel objet est définie sur la valeur du prototype du constructeur.

Pour illustrer cette distinction :

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

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

Dans ceci Par exemple, Foo.prototype est l'objet prototype pour b et c. La propriété __proto__ de b et c pointe vers cet objet prototype, leur permettant d'en hériter des propriétés et des méthodes.

Il convient de noter que prototype est une propriété en lecture-écriture, tandis que __proto__ est généralement considérée comme en lecture seule. Modifier directement la propriété __proto__ peut entraîner des comportements inattendus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn