概要
hasOwnProperty() メソッドは、オブジェクトに指定された独自のプロパティが含まれているかどうかを判断するために使用されます。
文法
obj.hasOwnProperty(prop)
パラメータ
•小道具
•検出する属性の名前。
説明
Object.prototype を継承するすべてのオブジェクトは、プロトタイプ チェーンから hasOwnProperty メソッドを継承します。このメソッドは、オブジェクトに特定の独自のプロパティが含まれているかどうかを検出するために使用できます。このメソッドは、プロトタイプのプロパティからのプロパティを無視します。チェーンから受け継がれたもの。
例
例 1: hasOwnProperty メソッドを使用して、オブジェクトに特定の独自のプロパティが含まれているかどうかを確認します
次の例では、オブジェクト o に独自の属性 prop が含まれているかどうかを確認します。
o = new Object();o.prop = 'exists';function changeO() {
o.newprop = o.prop;
o.prop;}o.hasOwnProperty('prop');
を削除します。
// true を返します
ChangeO();
o.hasOwnProperty('prop');
// false を返します
例 2: 独自のプロパティと継承されたプロパティの違い
次の例は、hasOwnProperty メソッドによる独自のプロパティと継承されたプロパティの処理の違いを示しています。
o = 新しいオブジェクト();o.prop = '存在';o.hasOwnProperty('prop');
// true を返します
o.hasOwnProperty('toString');
// false を返します
o.hasOwnProperty('hasOwnProperty');
// false を返します
例 3: オブジェクトのすべての自己プロパティをトラバースする
次の例は、オブジェクトのすべてのプロパティを走査するときに継承されたプロパティを無視する方法を示しています。ここでの for..in ループは、通常は Object.getOwnPropertyNames を直接使用します。方法でも同様のニーズを実現できます。
コードをコピーします
If (buz.hasOwnProperty(name)) {
alert("これは霧 (" name ") です。値: " buz[name]);
}
他 {
アラート(名前);
// toString またはその他
}}
例 4: hasOwnProperty メソッドが隠されている可能性があります
オブジェクトに独自の hasOwnProperty メソッドがある場合、プロトタイプ チェーン上の同じ名前のメソッドがシャドウされます。
コードをコピーします
コードは次のとおりです:
var foo = {
HasOwnProperty: function() {
return false;
}、
bar: 'ここにドラゴン'};foo.hasOwnProperty('bar');
// 常に false を返します
// この状況が心配な場合は、プロトタイプ チェーンで実際の hasOwnProperty メソッドを直接使用できます
({}).hasOwnProperty.call(foo, 'bar');
// true
Object.prototype.hasOwnProperty.call(foo, 'bar');
// true
以上がこの記事で説明した内容のすべてです。皆さんに気に入っていただければ幸いです。