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 を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法
>>: MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します
最近、プロジェクトの過程で問題に遭遇しました。メニューバーを常に上部に表示し、後続の要素をその下に表...
序文Dockerfile は Docker プログラムによって解釈されるスクリプトです。Docker...
Dockerにfastdfsをインストールするディレクトリをマウント-v /e/fdfs/トラッカー...
1. 動的クエリルール動的クエリルールは、おおよそ次の図のようになります。ユーザのカスタマイズに応じ...
jquery-multiselect (ドロップダウン ボックスをチェックボックス付きの複数選択コン...
この記事の例では、雨滴効果を実現するためのキャンバスの具体的なコードを参考までに共有しています。具体...
目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...
目次1. トリガーとは何ですか? 2. トリガーを作成するトリガーを作成するための構文は次のとおりで...
HTML5 と jQuery はアップロード前にローカル画像のプレビューを実装しており、その効果は...
0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...
目次1. Typescriptの紹介2. 設定ファイル webpack 設定3. プロジェクトに.t...
序文私は Win7 を搭載した古いラップトップを持っています。古いシステムを維持しながら、同時に U...
<br />1998年に最初の個人ページが誕生してから2008年の今日まで、デザイン業界...
目次1つ。環境二。予防三つ。例Zabbix トリガーがしきい値に達すると、アラート メッセージの送信...
OpenShift 3.9 の最新バージョンを体験する最も早い方法。準備 [root@host ~]...