hasOwnProperty in JavaScript
-
Überprüfung von
hasOwnProperty
auf Objekte in JavaScript -
Prüfung von
hasOwnProperty
auf Objekte einer Klasse
Wir sehen oft ein Dilemma bezüglich der in
-Konvention und der hasOwnProperty
, aber beide funktionieren in einem bestimmten Fall unterschiedlich. Das Hauptkonzept ist, dass in
für Objekte funktioniert, die geerbte Eigenschaften haben und true
ergeben, während hasOwnProperty
nur für Eigenschaften wahr zurückgibt, die nicht geerbt, sondern explizit definiert sind.
Hier wird nur auf die hasOwnProperty
in JavaScript eingegangen.
Überprüfung von hasOwnProperty
auf Objekte in JavaScript
In JavaScript sieht die Struktur zum Überprüfen, ob eine Eigenschaft definiert ist, wie folgt aus: objectName.hasOwnProprty(property)
. Dabei kann ein Objekt ein array
oder ein key-value
-Paar sein. Sie können den gerichteten Pfad überprüfen.
Verwendung von hasOwnProperty
auf Array-Objekt in JavaScript
Arrays werden ab 0
indiziert und gehen bis zum letzten verfügbaren Element. Daher bevorzugen wir die Indexwerte zum Aufrufen der Eigenschaft eines Array-Objekts. Das folgende Beispiel gibt eine klare Vorstellung.
Code-Auszug:
var myObj = ['Liza', 'Kary', 'Blake'];
console.log(myObj.hasOwnProperty(2));
console.log(myObj.hasOwnProperty(3));
Ausgabe:
Verwendung von hasOwnProperty
auf key-value
-Pair-Objekten in JavaScript
In diesem Zusammenhang betrachten wir ein Dictionary, das Schlüsselwerte (string
) und Eigenschaften (beliebiger Datentyp) haben wird. Gehen wir für das folgende Beispiel:
Code-Auszug:
var myObj = {
pet : "penguine",
age : 5,
}
console.log(myObj.hasOwnProperty("age"));
console.log(myObj.hasOwnProperty("color"));
Ausgabe:
Wie Sie sehen können, hat das Objekt myObj
nur zwei Schlüssel – pet
und age
. Wenn wir nur diese beiden Eigenschaften mit hasOwnProperty
aufrufen, sehen wir das Ergebnis der Konsole true
. Ansonsten haben wir eine zufällige Eigenschaft color
genannt, was false
ergibt.
Prüfung von hasOwnProperty
auf Objekte einer Klasse
JavaScript ES6 hat ein zusätzliches Feature von class
, und die Verwendung von constructor
ermöglicht die Definition einiger dynamischer Objekte. Nachdem Sie die Objekte deklariert haben, können Sie einfach auf sie zugreifen, indem Sie Ihren Wert für sie definieren. Die Demonstration löscht die Erklärung dieses Abschnitts. Außerdem erhalten Sie für jeden benutzerdefinierten Wert, wenn die Eigenschaft im Klassenkonstruktor
vorhanden ist, die Antwort true
; andernfalls false
.
Code-Auszug:
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'));