Maison > interface Web > js tutoriel > le corps du texte

Différencier proto et Constructor.prototype : quelle est la distinction clé ?

DDD
Libérer: 2024-10-21 10:32:03
original
853 Les gens l'ont consulté

Differentiating proto and Constructor.prototype: What's the Key Distinction?

Comprendre les différences entre proto et Constructor.prototype

La propriété proto et la constructor.prototype sont des concepts étroitement liés en JavaScript qui prêtent souvent à confusion. Cet article vise à clarifier leurs distinctions.

__proto__ :

proto est une propriété interne des objets JavaScript qui pointe vers leur objet prototype. L'objet prototype contient des propriétés et des méthodes héritées par les instances de cet objet. Les objets héritent de leur propriété proto de leur fonction constructeur.

Dans l'exemple, newtoy.__proto__ renvoie l'objet Gadget.prototype, qui contient la propriété rating héritée.

constructor.prototype :

La propriété constructor.prototype d'une fonction fait référence au prototype objet de la fonction. Lorsqu'un objet est créé à l'aide du mot-clé new, le prototype de sa fonction constructeur devient le prototype du nouvel objet.

Dans l'exemple, newtoy.constructor.prototype renvoie l'objet Gadget.prototype, qui possède la propriété rating héritée.

Chaîne prototypique :

Les deux proto et constructor.prototype participent à la chaîne prototypique, un mécanisme en JavaScript qui permet aux objets d'hériter des propriétés et des méthodes de leurs objets prototypes.

newtoy.__proto__.constructor.prototype.constructor. prototype.constructor.prototype renvoie l'objet Gadget.prototype, qui hérite de Function.prototype et se termine finalement à Object.prototype.

Internet Explorer :

Internet Explorer n'a pas de propriété proto. Pour vérifier null dans ce contexte, il est possible d'utiliser la méthode hasOwnProperty() pour déterminer si l'objet contient une propriété spécifique.

Par exemple :

<code class="javascript">if (Object.hasOwnProperty("__proto__")) {
  // __proto__ property is available
} else {
  // __proto__ property is not available
}</code>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!