Detaillierte Erklärung der Eigenschaften und Instanzverwendung von hasOwnProperty in js

Detaillierte Erklärung der Eigenschaften und Instanzverwendung von hasOwnProperty in js

1. js schützt hasOwnProperty nicht vor unrechtmäßiger Belegung. Wenn ein Objekt diese Eigenschaft zufällig besitzt, müssen Sie eine externe hasOwnProperty-Funktion verwenden, um das richtige Ergebnis zu erhalten.

2. Um zu überprüfen, ob eine Eigenschaft für ein Objekt vorhanden ist, ist „hasOwnProperty“ die einzige verfügbare Methode.

Beispiele

var foo = {
    hatEigeneEigenschaft: function() {
        gibt false zurück;
    },
    Bar: „Hier sind Drachen“
};
foo.hasOwnProperty('bar'); // gibt immer false zurück
//Verwende hasOwnProperty eines anderen Objekts und setze seinen Kontext auf foo
({}).hasOwnProperty.call(foo, 'bar'); // wahr

Wissenspunkterweiterung:

Ermitteln Sie, ob das Attribut vorhanden ist

var o = neues Objekt();
o.prop = "existiert";

Funktion changeO() {
 o.neueprop = o.prop;
 o.prop löschen;
}

o.hasOwnProperty('prop'); // wahr
ändernO();
o.hasOwnProperty('prop'); // falsch

Eigene Attribute und geerbte Attribute bestimmen

Funktion foo() {
 dieser.name = "foo"
 dies.sayHi = Funktion () {
  console.log('Sag Hallo')
 }
}

foo.prototype.sayGoodBy = Funktion () {
 console.log('Sag Auf Wiedersehen')
}

lass myPro = neues foo()

console.log(myPro.name) // foo
console.log(myPro.hasOwnProperty('name')) // wahr
console.log(myPro.hasOwnProperty('toString')) // falsch
console.log(myPro.hasOwnProperty('hasOwnProperty')) // fehlgeschlagen
console.log(myPro.hasOwnProperty('sayHi')) // wahr
console.log(myPro.hasOwnProperty('sayGoodBy')) // falsch
console.log('sayGoodBy' in myPro) // wahr

Iterieren Sie über alle Eigenschaften eines Objekts

Beim Betrachten von Open-Source-Projekten sieht man oft Quellcode, der dem folgenden ähnelt. Die for...in-Schleife zählt alle Eigenschaften des Objekts auf und verwendet dann die Methode hasOwnProperty(), um geerbte Eigenschaften zu ignorieren.

var buz = {
  Nebel: ‚Stapel‘
};

für (Var-Name in Buz) {
  wenn (buz.hasOwnProperty(name)) {
    alert("das ist definitiv Nebel (" + name + "). Wert: " + buz[name]);
  }
  anders {
    alert(name); // toString oder etwas anderes
  }
}

Beachten Sie „hasOwnProperty“ als Eigenschaftsnamen

JavaScript schützt den Eigenschaftsnamen hasOwnProperty nicht. Wenn es also ein Objekt mit diesem Eigenschaftsnamen geben könnte, ist es notwendig, eine erweiterte Methode hasOwnProperty zu verwenden, um das richtige Ergebnis zu erhalten:

var foo = {
  hatEigeneEigenschaft: function() {
    gibt false zurück;
  },
  Bar: „Hier sind Drachen“
};

foo.hasOwnProperty('bar'); // gibt immer false zurück

// Wenn Sie diesbezüglich Bedenken haben, können Sie die echte Methode hasOwnProperty direkt in der Prototypenkette verwenden. // Verwenden Sie die Methode „hasOwnProperty“ eines anderen Objekts und rufen Sie auf
({}).hasOwnProperty.call(foo, 'bar'); // wahr

// Sie können die Eigenschaft hasOwnProperty auch für den Objektprototyp verwenden. Object.prototype.hasOwnProperty.call(foo, 'bar'); // true

Dies ist das Ende dieses Artikels über die Eigenschaften und Beispielverwendung von hasOwnProperty in js. Weitere Inhalte zur Verwendung der Eigenschaften von hasOwnProperty in js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Die JS-Methode hasOwnProperty() erkennt, ob eine Eigenschaft die eigene Eigenschaft eines Objekts ist.
  • Detaillierte Erklärung des Unterschieds zwischen in und hasOwnProperty in JavaScript
  • Beispiel für die JavaScript-Funktion hasOwnProperty()
  • Eine kurze Erläuterung des Unterschieds zwischen der Verwendung von in und hasOwnProperty zum Abrufen von Objekteigenschaften in js
  • Detaillierte Erörterung des Unterschieds zwischen der Verwendung von in und hasOwnProperty zum Abrufen von Objekteigenschaften in js
  • hasOwnProperty(), propertyIsEnumerable() und isPrototypeOf() in JS

<<:  Detaillierte Erklärung der Box-Größe in CSS3 (Content-Box und Border-Box)

>>:  Ist es notwendig, dem Img-Bild-Tag ein Alt-Attribut zuzuweisen?

Artikel empfehlen

Einführung in die Verwendung des MySQL pt-slave-restart-Tools

Inhaltsverzeichnis Beim Einrichten einer MySQL-Ma...

Erläuterung des MySQL-Nicht-Null-Einschränkungsfalls

Inhaltsverzeichnis Legen Sie beim Erstellen einer...

Weitere Features der JavaScript-Konsole

Inhaltsverzeichnis Überblick console.log konsole....

MySQL-Operator-Zusammenfassung

Inhaltsverzeichnis 1. Arithmetische Operatoren 2....

Natives, benutzerdefiniertes Rechtsklickmenü von js

In diesem Artikelbeispiel wird der spezifische Co...

Einführung in bedingte Zugriffsattribute und Pfeilfunktionen in JavaScript

Inhaltsverzeichnis 1. Bedingte Zugriffsattribute ...

Detaillierte Konfiguration von Nginx, das sowohl Http als auch Https unterstützt

Heutzutage gehört die Unterstützung von HTTPS für...

Eine einfache Erklärung der parallelen MySQL-Replikation

1. Hintergrund der parallelen Replikation Zunächs...