ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript の proto と Constructor.prototype の違いは何ですか?

JavaScript の proto と Constructor.prototype の違いは何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-21 10:08:02844ブラウズ

What is the Difference Between proto and Constructor.prototype in JavaScript?

proto とconstructor.prototype の違い

オブジェクトの proto プロパティは、共有プロパティとメソッドを含むプロトタイプ オブジェクトを参照します。対照的に、constructor.prototype は、オブジェクトのコンストラクター関数のプロトタイプ プロパティを指します。

次の例は、その違いを示しています。

<code class="javascript">function Gadget(name, color) {
  this.name = name;
  this.color = color;
}

Gadget.prototype.rating = 3;

var newtoy = new Gadget("webcam", "black");</code>

この場合、newtoy.__proto__ は Gadget を指します。 prototype はプロパティ評価を持ち、newtoy.constructor.prototype も Gadget.prototype を指します。ただし、newtoy.constructor.prototype.constructor.prototype.constructor.prototype は、Object.prototype を超えるプロトタイプがないため null を返します。

これは、proto が、一方、constructor.prototype はプロトタイプ チェーンに従います。 constructor.prototype に複数回アクセスすると、最上位の Object.prototype に到達するまでプロトタイプ チェーンをたどることになります。

Internet Explorer には、__proto__ プロパティはありません。代わりに、 [[Prototype]] 属性を使用してオブジェクトのプロトタイプにアクセスできます。ただし、この属性は標準の JavaScript コードではアクセスできません。

プロトタイプ オブジェクトを参照すると、JavaScript の継承階層を理解するのに役立ち、関連オブジェクト間でプロパティとメソッドを共有するメカニズムが提供されます。

以上がJavaScript の proto と Constructor.prototype の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。