JS hasOwnProperty() メソッドは、プロパティがオブジェクト自身のプロパティであるかどうかを検出します。

JS hasOwnProperty() メソッドは、プロパティがオブジェクト自身のプロパティであるかどうかを検出します。

JavaScript の hasOwnProperty() メソッドは、Object のプロトタイプ メソッド (インスタンス メソッドとも呼ばれます) です。これは、Object.prototype オブジェクトで定義されます。Object のすべてのインスタンス オブジェクトは、hasOwnProperty() メソッドを継承します。

hasOwnProperty() メソッドは、プロパティがプロトタイプ チェーンから継承されたものではなく、オブジェクト独自のプロパティであるかどうかを検出するために使用されます。プロパティが所有プロパティの場合は true を返し、それ以外の場合は false を返します。つまり、hasOwnProperty() メソッドはオブジェクトのプロトタイプ チェーンを検出せず、現在のオブジェクト自体のみを検出し、現在のオブジェクト自体にプロパティが存在する場合にのみ true を返します。

たとえば、次のカスタム タイプでは、this.name はオブジェクト独自のプロパティを表しますが、プロトタイプ オブジェクト内の name プロパティは継承されたプロパティです。

function F() { //カスタム データ型 this.name = "own property";
}
F.prototype.name = "継承されたプロパティ";

hasOwnProperty() の構文は次のとおりです。

オブジェクト.hasOwnProperty(プロパティ名);

パラメータの説明: propertyName パラメータは、検出するプロパティの名前を示します。

戻り値: ブール値を返します。 propertyName が所有プロパティである場合は true を返し、そうでない場合は false を返します。

例1

上記のカスタム タイプの場合、オブジェクトをインスタンス化してから、現在のオブジェクトによって呼び出されるプロパティ名のタイプを判別できます。

var f = new F(); // オブジェクトをインスタンス化します console.log(f.hasOwnProperty("name")); // 現在呼び出されている名前が所有プロパティであることを示す true を返します console.log(f.name); // 文字列 "Own Property" を返します

コンストラクター関数のすべてのプロトタイプ プロパティ (プロトタイプ オブジェクトに含まれるプロパティ) は継承されたプロパティであり、hasOwnProperty() メソッドを使用してテストすると false が返されます。ただし、プロトタイプ オブジェクト自体の場合、これらのプロトタイプ プロパティはプロトタイプ オブジェクト自身のプロパティであるため、戻り値は再び true になります。

例2

次の例では、toString() メソッドは Date オブジェクトの継承プロパティですが、Date コンストラクターのプロトタイプ オブジェクトの場合は独自のプロパティであることが示されています。

var d = 日付;
console.log(d.hasOwnProperty("toString")); // false を返し、toString() が Date 独自のプロパティであることを示します var d = Date.prototype;
console.log(d.hasOwnProperty("toString")); // true を返し、toString() が Date.prototype プロパティであることを示します

hasOwnProperty() メソッドは、指定されたオブジェクトに指定された名前のプロパティが含まれているかどうかのみを判別できます。プロパティがオブジェクト プロトタイプ チェーンに含まれているかどうかは確認できないため、検出できるプロパティはオブジェクト メンバーである必要があります。

例3

次の例は、hasOwnProperty() メソッドによって検出できるプロパティの範囲を示しています。

var o = { //オブジェクトリテラル o1 : { //子オブジェクトリテラル o2 : { //孫オブジェクトリテラル名 : 1 //孫オブジェクトリテラルプロパティ}
  }
};
console.log(o.hasOwnProperty("o1")); //true を返し、o1 が o の独自のプロパティであることを示します console.log(o.hasOwnProperty("o2")); //false を返し、o2 が o の独自のプロパティではないことを示します console.log(o.o1.hasOwnProperty("o2")); //true を返し、o2 が o1 の独自のプロパティであることを示します console.log(o.o1.hasOwnProperty("name")); //false を返し、name が o1 の独自のプロパティではないことを示します console.log(o.o1.hasOwnProperty("name")); //true を返し、name が o2 の独自のプロパティではないことを示します

これで、プロパティがオブジェクト自身のプロパティであるかどうかを検出するための JS hasOwnProperty() メソッドに関するこの記事は終了です。関連する JS hasOwnProperty コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • AngularJSループオブジェクトプロパティで動的列を実装するアイデアの詳細な説明
  • JavaScriptはオブジェクトの不要なプロパティを削除します
  • springboot post インターフェースが json を受け入れる場合、それがオブジェクトに変換されると、プロパティはすべて null になります。
  • JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法
  • JavaScript でオブジェクトのプロパティを削除する方法
  • js 属性オブジェクトの hasOwnProperty メソッドの使用
  • 例を通して JavaScript の Date オブジェクトのプロパティとメソッドを解析する
  • Java オブジェクトを JSON に変換する際のプロパティの動的な追加、削除、変更、クエリの詳細な説明
  • オブジェクトをJSONに変換する場合、Java jacksonはサブオブジェクトのプロパティ操作を無視します。
  • JavaScript オブジェクトの 3 つのプロパティ

<<:  Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法

>>:  MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

推薦する

Windows Server 2016 リモート デスクトップ サービスの構成とライセンスのアクティブ化 (2 ユーザー)

Server 2016 のリモート デスクトップ接続のデフォルト数は 2 ユーザーです。2 人以上...

要素複数フォーム検証の実装

プロジェクトでは、フォーム テストが頻繁に発生します。単一のフォーム テストについては、詳細な紹介が...

Ajax の JavaScript ソリューションにおける parsererror エラー ケースの詳細な説明

ajax の parsererror エラー (バックグラウンドからフロントエンドに送信される js...

JS における for、for...in、for...of、forEach の違いと使用例

forループ基本的な構文形式: for(変数の初期化; 条件式; 演算式){ループ本体ステートメント...

Vue マルチ選択リスト コンポーネントの詳細な説明

マルチ選択は、すべてのオプションを一覧表示し、ユーザーが Ctrl/Shift キーを使用して複数選...

MySQL で 2 つのデータベース テーブル構造を比較する方法

開発およびデバッグのプロセスでは、新しいコードと古いコードの違いを比較する必要があります。比較には、...

MySQL パフォーマンス最適化のヒント

MySQL パフォーマンスの最適化MySQL はインターネット企業で広く使用されており、MySQL ...

ハイパーリンクアイコンの仕様: 記事の読みやすさを向上

1. ハイパーリンクアイコンの仕様とは?<br />ハイパーリンクアイコンの仕様は、「C...

MySQLで時間別データと最後の時間別データの差をクエリするアイデアの詳細な説明

1. はじめに要件は、特定の時間範囲内で、1 時間ごとのデータと前の 1 時間ごとのデータの差と比率...

MySQL で遅いファジークエリを最適化する方法

目次1. はじめに: 2. 最初のアイデアはインデックスを構築することです3. 命令P.S. Lik...

安全な構成のためにDockerでTLSを有効にする手順

序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...

Vmwareでディスクを追加する方法:ディスクを拡張する

この記事では、ディスクを追加または拡張して、Vmare で有効にする方法について説明します。シナリオ...

MySQL の group by と order by を一緒に使用する方法

テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...

HTMLの基本構文は、HTMLを学び始めたばかりの人にとって便利です。

1.1 一般的なマーキング一般的なタグは開始タグと終了タグで構成されます。構文は次のとおりです: ...

div の幅が width:100% に設定されていて、パディングまたはマージンが親要素を超えてしまう問題の解決方法

序文この記事では、div の幅を 100% に設定し、親要素を超えてパディングまたはマージンを設定す...