Les différences entre proto et constructor.prototype
La propriété proto d'un objet fait référence à son objet prototype, qui contient des propriétés et des méthodes partagées. En revanche, constructor.prototype pointe vers la propriété prototype de la fonction constructeur de l'objet.
L'exemple suivant illustre la distinction :
<code class="javascript">function Gadget(name, color) { this.name = name; this.color = color; } Gadget.prototype.rating = 3; var newtoy = new Gadget("webcam", "black");</code>
Dans ce cas, newtoy.__proto__ pointe vers Gadget. prototype, qui a la note de propriété, tandis que newtoy.constructor.prototype pointe également vers Gadget.prototype. Cependant, newtoy.constructor.prototype.constructor.prototype.constructor.prototype renvoie null car il n'y a pas d'autre prototype au-delà de Object.prototype.
C'est parce que proto est une référence directe au objet prototype, tandis que constructor.prototype suit la chaîne de prototypes. Lorsque vous accédez plusieurs fois à constructor.prototype, vous parcourez la chaîne de prototypes jusqu'à atteindre le niveau supérieur Object.prototype.
Dans Internet Explorer, il n'y a pas de propriété __proto__. Au lieu de cela, vous pouvez utiliser l'attribut [[Prototype]] pour accéder au prototype d'un objet. Cependant, cet attribut n'est pas accessible dans le code JavaScript standard.
Le référencement aux objets prototypes peut vous aider à comprendre la hiérarchie d'héritage en JavaScript et fournit un mécanisme de partage de propriétés et de méthodes entre objets associés.
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!