js 属性オブジェクトの hasOwnProperty メソッドの使用

js 属性オブジェクトの hasOwnProperty メソッドの使用

オブジェクトの hasOwnProperty() メソッドは、オブジェクトに特定の独自の (継承されていない) プロパティが含まれているかどうかを示すブール値を返します。

属性が存在するかどうかを判断する

var o = 新しいオブジェクト();
o.prop = '存在する';

関数changeO() {
 o.newprop = o.prop;
 o.prop を削除します。
}

o.hasOwnProperty('prop'); // 真
変更O();
o.hasOwnProperty('prop'); // 偽

自身の属性と継承された属性を決定する

関数foo(){
 this.name = 'foo'
 this.sayHi = 関数 () {
  console.log('こんにちは')
 }
}

foo.prototype.sayGoodBy = 関数 () {
 console.log('さよならを言う')
}

myPro = new foo() とする

console.log(myPro.name) // foo
console.log(myPro.hasOwnProperty('name')) // true
console.log(myPro.hasOwnProperty('toString')) // false
console.log(myPro.hasOwnProperty('hasOwnProperty')) // 失敗
console.log(myPro.hasOwnProperty('sayHi')) // true
console.log(myPro.hasOwnProperty('sayGoodBy')) // false
console.log('sayGoodBy' in myPro) // true

オブジェクトのすべてのプロパティを反復処理する

オープンソース プロジェクトを見ると、次のようなソース コードをよく見かけます。 for...in ループはオブジェクトのすべてのプロパティを列挙し、hasOwnProperty() メソッドを使用して継承されたプロパティを無視します。

var buz = {
  霧: 'スタック'
};

for (変数名 in buz) {
  if (buz.hasOwnProperty(名前)) {
    alert("これは間違いなくfog(" + name + ")です。値: " + buz[name]);
  }
  それ以外 {
    alert(name); // toString または他の何か
  }
}

プロパティ名としてhasOwnPropertyに注意してください

JavaScript は hasOwnProperty プロパティ名を保護しないので、このプロパティ名を含むオブジェクトが存在する可能性がある場合は、正しい結果を得るために拡張された hasOwnProperty メソッドを使用する必要があります。

var foo = {
  独自のプロパティを持つ: 関数() {
    false を返します。
  },
  バー: 「ここにドラゴンがいる」
};

foo.hasOwnProperty('bar'); // 常に false を返します

// これが気になる場合は、プロトタイプチェーンで実際のhasOwnPropertyメソッドを直接使用できます // 別のオブジェクトの`hasOwnProperty`を使用して呼び出します
({}).hasOwnProperty.call(foo, 'bar'); // 真

// オブジェクトプロトタイプの hasOwnProperty プロパティを使用することもできます。Object.prototype.hasOwnProperty.call(foo, 'bar'); // true

参考リンク

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 つのプロパティ

<<:  Ubuntu で XFS ファイルシステム用の LVM を作成する方法

>>:  Mysql マスタースレーブ同期構成の実践の詳細な説明

推薦する

テーブル適応とオーバーフローのいくつかの設定の詳細な説明

1. テーブル リセットの 2 つのプロパティ: ①border-collapse: collaps...

LinuxサーバーでRabbitMQ管理ページにアクセスできない問題を解決

私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...

jsのイベントオブジェクトを深く理解しましょう

JS でよく使用されるイベントは次の通りです。ページイベント: load;フォーカス イベント: フ...

ローカルで起動したときに Vue プロジェクトがクッキーを保持できない問題を解決する

vueプロジェクトをパッケージ化してサーバーにデプロイし、正常にログインできるが、ローカルで起動する...

背景画像に CSS3 変換を適用するためのソリューション

CSS 変換は便利ですが、背景画像にはまだ適用されていません。この投稿では、背景画像を回転させたい場...

ドメイン名を介してプロジェクトにアクセスするnginx + tomcatの例

ドメイン名を使ってプロジェクトにアクセスする方法が気になったのですが、自分でドメイン名を取得するのは...

Linux のソフトリンクとハードリンクの詳細な説明

目次1. ファイルとディレクトリの基本的な保存2. Inコマンドの紹介(1)lnコマンドの基本情報を...

MySQL 接続制御プラグインの紹介

目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...

初心者向けのMySQLデータベースとテーブルDDLの作成と操作の学習

目次1. データベースを操作する1.1 データベースを作成する1.2 データベースをクエリする1.3...

HTML の一般的でないタグ optgroup、sub、sup、bdo のサンプルコード

Optgroup は、ドロップダウン リストのコンテンツをより整理するために、select タグで使...

一定時間後にNavicatがデータベースから自動的に切断される問題の解決方法

これは、データベース サーバーが、接続が多すぎるのを避けるために、一定時間非アクティブな状態が続くと...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

スクロールラグの問題を解決するためのオーバーフロースクロールの詳細な説明

序文div またはモジュールに overflow: scroll 属性を使用すると、iOS フォンで...

Docker実行コンテナが作成状態にある問題についての簡単な説明

最近の問題としては、次のような現象があります。システムには、docker run コマンドを継続的に...

MySQL 全文あいまい検索 MATCH AGAINST メソッドの例

MySQL 4.x 以降では、全文検索 MATCH ... AGAINST モード (大文字と小文字...