0.前提条件
JavaScript オブジェクトのプロパティは、インスタンス内に存在するものと、プロトタイプ オブジェクト内に存在するものの 2 つの形式に分けられます。
上記によれば、属性を検出すると 4 つの状況が発生します
インスタンスまたはプロトタイプ オブジェクトに存在しません
インスタンスには存在しますが、プロトタイプ オブジェクトには存在しません
インスタンスには存在せず、プロトタイプ オブジェクトに存在します
インスタンスとプロトタイプ オブジェクトの両方に存在します
1.hasOwnPrototype()
hasOwnPrototype() は文字列形式でプロパティ名を受け取り、そのプロパティがインスタンス自体に存在する場合 (ケース 2/ケース 4)、true を返します。それ以外の場合は false (ケース 1/ケース 3) を返します。
2.in 演算子
in 演算子は、属性がインスタンス自体に存在するかプロトタイプ オブジェクトに存在するかに関係なく true (ケース 2/ケース 3/ケース 4) を返します。それ以外の場合は false (ケース 1) を返します。
3. プロトタイプ属性の存在を検出します
in 演算子および hasOwnProperty() と組み合わせると、関数をカスタマイズして、指定されたプロパティがプロトタイプに存在するかどうかを検出できます。
指定された属性がプロトタイプに存在する場合は true (ケース 3) を返し、それ以外の場合は false (ケース 1/ケース 2/ケース 4) を返します。
上記がこの記事の全内容です。皆さんに気に入っていただければ幸いです