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はテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します
水平スクロールはあらゆる状況に適しているわけではありませんが、適切に行えば、Web サイトを他のサイ...
目次序文1. DDL 1.1 データベース操作1.2 データテーブルの操作1.3 一般的なデータ型1...
01 ウィンターフレーク(個人のみ) 02 スノートップキャップ(業務用) 03 モディウス「フリ...
今日、プログラムが間違った時刻を挿入し、フィールドがデフォルト値 CURRENT_TIMESTAMP...
jar パッケージを Docker コンテナに変換する方法1.まずJavaイメージをダウンロードする...
2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...
ルートジャンプ this.$router.push('/course'); this...
MySQL を頻繁に使用する人は、次のような状況に遭遇する可能性があります。 1. フィールド タ...
現在の需要:グループとファクターの 2 つのテーブルがあります。1 つのグループは複数のファクターに...
目次Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました1. mysq...
これを応用することで、ウェブサイトの一部の公開領域を独立したページにすることができ、その後、この技術...
問題の説明: Macを購入し、初めてMySQLをインストールしました。初期パスワードが分かりません。...
序文これまでは、/bin/ ディレクトリのソフトリンクを変更して Python のバージョンを切り替...
以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードで...
wget や curl ツールを使用して、Linux サーバーで大規模なネットワーク ファイルを直接...