Übersicht
Die Methode
hasOwnProperty() wird verwendet, um zu bestimmen, ob ein Objekt die angegebene eigene Eigenschaft enthält.
Grammatik
obj.hasOwnProperty(prop)
Parameter
•prop
•Der Name des zu erkennenden Attributs.
Beschreibung
Alle Objekte, die Object.prototype erben, erben die Methode hasOwnProperty aus der Prototypenkette. Diese Methode kann verwendet werden, um zu erkennen, ob ein Objekt bestimmte eigene Eigenschaften enthält von der Kette geerbt.
Beispiel
Beispiel 1: Verwenden Sie die Methode hasOwnProperty, um zu ermitteln, ob ein Objekt bestimmte eigene Eigenschaften enthält
Das folgende Beispiel prüft, ob Objekt o ein eigenes Attribut prop enthält:
o = new Object();o.prop = 'exists';function changeO() {
o.newprop = o.prop;
o.prop;}o.hasOwnProperty('prop');
löschen
// True zurückgeben
changeO();
o.hasOwnProperty('prop');
// Gibt false zurück
Beispiel 2: Der Unterschied zwischen eigenen Immobilien und geerbten Immobilien
Das folgende Beispiel zeigt den Unterschied zwischen der Behandlung eigener Eigenschaften und geerbter Eigenschaften durch die Methode hasOwnProperty:
o = new Object();o.prop = 'exists';o.hasOwnProperty('prop');
// True zurückgeben
o.hasOwnProperty('toString');
// Gibt false zurück
o.hasOwnProperty('hasOwnProperty');
// Gibt false zurück
Beispiel 3: Alle Eigeneigenschaften eines Objekts durchlaufen
Das folgende Beispiel zeigt, wie geerbte Eigenschaften beim Durchlaufen aller Eigenschaften eines Objekts ignoriert werden. Beachten Sie, dass die for..in-Schleife hier nur aufzählbare Eigenschaften durchläuft. Dies ist normalerweise das, was wir wollen. Mit dieser Methode können auch ähnliche Anforderungen erfüllt werden.
Nebel: 'Stack'};
für (Var-Name in Buz) {
If (buz.hasOwnProperty(name)) {
warning("das ist sicher Nebel ("name"). Wert: " buz[name]);
}
sonst {
alarm(name);
// toString oder etwas anderes
}}
Beispiel 4: Die hasOwnProperty-Methode ist möglicherweise verdeckt
Wenn ein Objekt über eine eigene hasOwnProperty-Methode verfügt, wird die Methode mit demselben Namen in der Prototypenkette geschattet:
HasOwnProperty: function() {
return false;
},
bar: 'Hier sind Drachen'};foo.hasOwnProperty('bar');
// gibt immer false zurück
// Wenn Sie sich über diese Situation Sorgen machen, können Sie die echte hasOwnProperty-Methode direkt in der Prototypenkette verwenden
({}).hasOwnProperty.call(foo, 'bar');
// wahr
Object.prototype.hasOwnProperty.call(foo, 'bar');
// wahr
Das Obige ist der gesamte in diesem Artikel beschriebene Inhalt. Ich hoffe, dass er Ihnen allen gefällt.