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 サイトの他の関連記事を参照してください。