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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-21 10:12:30345ブラウズ

What's the Difference Between proto and constructor.prototype?

proto とconstructor.prototype

JavaScript オブジェクトを操作する場合、proto とconstructor.prototypeは重要です。 proto はオブジェクトの直接のプロトタイプを指しますが、constructor.prototype はオブジェクトを作成した関数の作成元となったオブジェクトを指します。この区別により、プロトタイプ チェーンを走査するときに異なる結果が生じる可能性があります。

プロトタイプ チェーン トラバーサル

提供されたコードで示されているように、

proto を使用できます。オブジェクトのプロトタイプ チェーンを横断します。この例では、proto は、Gadget 関数のインスタンスである newtoy のプロトタイプ チェーンを走査するために使用されます。後続の各 proto 呼び出しはチェーン内で 1 レベル上がり、Object.prototype を超えるプロトタイプがないため、最終的に null を返します。

ただし、constructor.prototype.constructor.prototype.constructor.prototype の場合は、を使用すると、プロトタイプ チェーンも上に進みますが、ガジェット コンストラクターの作成元のプロトタイプを参照するため、最終的には最初のガジェット関数が返されます。

Internet Explorer での Null チェック

Internet Explorer では、

proto プロパティが使用できないため、Function オブジェクトのプロトタイプ ゲッターを使用してプロトタイプ チェーンをトラバースできます。以下のコードは、null をチェックする方法を示しています:

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

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