js の hasOwnProperty のプロパティとインスタンスの使用法の詳細な説明

js の hasOwnProperty のプロパティとインスタンスの使用法の詳細な説明

1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトにこのプロパティがある場合は、正しい結果を得るために外部の hasOwnProperty 関数を使用する必要があります。

2. オブジェクトにプロパティが存在するかどうかを確認する場合、使用できるメソッドは hasOwnProperty のみです。

var foo = {
    独自のプロパティを持つ: 関数() {
        false を返します。
    },
    バー: 「ここにドラゴンがいる」
};
foo.hasOwnProperty('bar'); // 常に false を返します
// 他のオブジェクトの hasOwnProperty を使用し、そのコンテキストを foo に設定します
({}).hasOwnProperty.call(foo, 'bar'); // 真

知識ポイントの拡張:

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

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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JS hasOwnProperty() メソッドは、プロパティがオブジェクト自身のプロパティであるかどうかを検出します。
  • JavaScript における in と hasOwnProperty の違いの詳細な説明
  • JavaScript hasOwnProperty() 関数の例
  • js でオブジェクト プロパティを取得するために in と hasOwnProperty を使用することの違いについて簡単に説明します。
  • js でオブジェクト プロパティを取得するために in と hasOwnProperty を使用することの違いについて詳しく説明します。
  • JS の hasOwnProperty()、propertyIsEnumerable()、isPrototypeOf()

<<:  CSS3 のボックス サイズ設定 (コンテンツ ボックスとボーダー ボックス) の詳細な説明

>>:  img 画像タグに alt 属性を付与する必要がありますか?

推薦する

iOS スタイルの選択ボックスの開閉機能を実装するための純粋な CSS

1 効果デモアドレス: https://www.albertyy.com/2020/7/check...

シェルを使用して複数のサーバーでバッチ操作を実行する方法

目次SSHプロトコルパスワード接続プロセスsshツールssh公開鍵ログインバッチ操作複数サーバーファ...

clipboard.js の使用法の概要

目次(1)はじめに: (2)クリップボードの内容をコピーする方法は次のとおりです。 (3)関数演算に...

MySQL の 10 進数データ型の小数点埋め込み問題の詳細な説明

序文開発プロセスでは、10 進データ型がよく使用されます。 MySQL では、小数点は正確なデータ型...

CSS3 は、跳ねるボール効果を実現する Web アニメーションを作成します。

基本的な準備この実装には、クラス名が ball である単純な div が必要です。 HTMLコード:...

React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは...

MySQL でのデータベース間クエリの例

序文MySQL では、クロスデータベース クエリは主に 2 つの状況に分けられます。1 つは同じサー...

Dockerで同じIDを持つ2つのイメージを削除する

今日 Docker コンテナを作成したとき、誤ってイメージの名前を間違って入力しました。その結果、コ...

練習と面接のための Linux シェル スクリプトのヒント 9 つを共有する

予防1) 先頭にインタープリターを追加します: #!/bin/bash 2) 構文のインデントに 4...

シンプルなドラッグ効果を実現するJavaScript

この記事では、ドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します...

iviewは動的なフォームとカスタム検証期間の重複を実装します

フォーム項目を動的に追加するiview の動的なフォーム追加は非常に簡単です。フォーム項目を配列に設...

jQuery は、画像を切り替えるための左ボタンと右ボタンのクリックを実装します。

この記事では、左ボタンと右ボタンをクリックすることで画像を切り替えるjQueryの具体的なコードを例...

ウェブページを作成するために最もよく使用されるHTMLタグ

1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...

HTMLコードに基づく画像断片化読み込み機能の実装

今日は断片化された画像の読み込み効果を実装します。効果は次のとおりです。 これを 3 つのステップで...

CSS スタイルをプログラムで処理するためのサンプル コード

プログラム的アプローチの利点1. スタイルの分散を避けるためのグローバルコントロール2. シンプルな...