JavaScript の継承には、基本クラスとして知られる既存のクラスから、派生クラスとして知られる新しいクラスの作成が含まれます。派生クラスは、基本クラスのプロパティとメソッドを継承します。 JavaScript では、派生クラスのプロトタイプを基本クラスのインスタンスに設定することで継承が実現されます。ただし、コンストラクター プロパティと instanceof 演算子について疑問が生じる可能性があります。
提供されたコードでは、関数 a を作成しています。 、b、c を使用して継承を示します。ただし、 b と c のインスタンスのコンストラクターをログに記録すると、それが基本クラス (a()) のコンストラクターであることがわかります。これは、派生クラスのプロトタイプを基本クラスのインスタンスに設定すると、派生クラスが基本クラスのプロトタイプに事実上リンクされるためです。その結果、派生クラス インスタンスのコンストラクター プロパティは、基本クラス コンストラクターを指したままになります。
使用している継承メカニズムは間違っていません。継承はプロトタイプ チェーンをリンクすることで実現され、これがコード内で行われていることです。
JavaScript 継承チェーンのコンストラクター プロパティを更新するには、次のようにします。次の手順に従ってください:
instanceof 演算子は、次のコンストラクター プロパティに依存しません。インスタンス。代わりに、インスタンスのプロトタイプ チェーンを走査し、その内部の [[proto]] プロパティがコンストラクター関数のプロトタイプ プロパティと一致するかどうかを確認します。一致するものがあれば true を返し、インスタンスがそのコンストラクターに属していることを示します。これにより、コンストラクター プロパティが正しく設定されていない場合でも、instanceof 演算子はインスタンスの型を正確に判断できます。
以上がJavaScript の継承はコンストラクター プロパティと「instanceof」演算子にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。