JavaScript の hasOwnProperty
in
規則と hasOwnProperty
に関してジレンマがよく見られますが、特定のケースではどちらも動作が異なります。主な概念は、in
はプロパティを継承し、結果が true
になるオブジェクトに対して機能しますが、hasOwnProperty
は、継承されないプロパティに対してのみ true を返し、代わりに明示的に定義されます。
ここでは、JavaScript の hasOwnProperty
についてのみ説明します。
JavaScript のオブジェクトの hasOwnProperty
のチェック
JavaScript では、プロパティが定義されているかどうかを確認する構造は次のようになります-objectName.hasOwnProprty(property)
。ここで、オブジェクトは配列
またはキーと値
のペアにすることができます。ダイレクトパスを確認できます。
JavaScript の配列オブジェクトでの hasOwnProperty
の使用
配列は 0
からインデックスが付けられ、最後に使用可能な要素まで進みます。したがって、配列オブジェクトのプロパティを呼び出すには、インデックス値を使用することをお勧めします。次の例は明確な考えを示しています。
コードスニペット:
var myObj = ['Liza', 'Kary', 'Blake'];
console.log(myObj.hasOwnProperty(2));
console.log(myObj.hasOwnProperty(3));
出力:
JavaScript の key-value
ペアオブジェクトでの hasOwnProperty
の使用
この点で、キー値(文字列)とプロパティ(任意のデータ型)を持つ辞書を検討します。以下の例に行きましょう:
コードスニペット:
var myObj = {
pet : "penguine",
age : 5,
}
console.log(myObj.hasOwnProperty("age"));
console.log(myObj.hasOwnProperty("color"));
出力:
ご覧のとおり、オブジェクト myObj
には、pet
と age
の 2つのキーしかありません。これらの 2つのプロパティのみを hasOwnProperty
で呼び出すと、コンソールの結果が true
になります。それ以外の場合は、ランダムプロパティを color
と呼び、結果として false
になります。
クラスのオブジェクトの hasOwnProperty
のチェック
JavaScript ES6 にはクラス
の追加機能があり、コンストラクター
を使用すると、いくつかの動的オブジェクトの定義が可能になります。オブジェクトを宣言した後、オブジェクトの値を定義することで、オブジェクトに簡単にアクセスできます。デモンストレーションにより、このセクションの説明がクリアされます。また、任意のカスタム値について、プロパティがクラスコンストラクター
内に存在する場合、答えは true
になります。それ以外の場合は、false
。
コードスニペット:
class pet {
constructor(name, age) {
this.name = name;
this.age = age;
}
}
const pet1 = new pet('Izequel', 5);
console.log(pet1.hasOwnProperty('name'));
console.log(pet1.hasOwnProperty('color'));