JavaScript -Objekteigenschaften
Eigenschaften sind der wichtigste Teil eines jeden JavaScript-Objekts.
JavaScript-Eigenschaften
Eigenschaften sind die einem JavaScript-Objekt zugeordneten Werte.
Ein JavaScript-Objekt ist eine Sammlung ungeordneter Eigenschaften.
Eigenschaften können normalerweise geändert, hinzugefügt und gelöscht werden, einige sind jedoch schreibgeschützt.
Zugriff auf JavaScript-Eigenschaften
Die Syntax für den Zugriff auf die Eigenschaft eines Objekts lautet:
objectName.property // person.age
oder
objectName["property"] // person["age"]
oder
objectName[expression] // x = "age"; person[x]
Der Ausdruck muss zu einem Eigenschaftsnamen ausgewertet werden.
Beispiel 1
person.firstname + " is " + person.age + " years old.";
Beispiel 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript für ... in Schleife
Die JavaScript for...in
-Anweisung durchläuft die Eigenschaften eines Objekts.
Syntax
for (let variable in object) {
// code to be executed
}
Der Codeblock innerhalb der for...in
Schleife wird einmal für jede Eigenschaft ausgeführt.
Die Eigenschaften eines Objekts durchlaufen:
Beispiel
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
Neue Eigenschaften hinzufügen
Sie können einem vorhandenen Objekt neue Eigenschaften hinzufügen, indem Sie ihm einfach einen Wert zuweisen.
Angenommen, das Personenobjekt existiert bereits - Sie können ihm dann neue Eigenschaften zuweisen:
Beispiel
person.nationality = "English";
Eigenschaften löschen
Das delete
Schlüsselwort löscht eine Eigenschaft von einem Objekt:
Beispiel
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
oder Person["Alter"] löschen;
Beispiel
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
Das delete
Schlüsselwort löscht sowohl den Wert der Eigenschaft als auch die Eigenschaft selbst.
Nach dem Löschen kann die Eigenschaft nicht verwendet werden, bevor sie wieder hinzugefügt wird.
Der
delete
Operator ist für die Verwendung mit Objekteigenschaften konzipiert. Es hat keine Auswirkungen auf Variablen oder Funktionen.
Der delete
Operator sollte nicht für vordefinierte JavaScript-Objekteigenschaften verwendet werden. Es kann Ihre Anwendung zum Absturz bringen.
Verschachtelte Objekte
Werte in einem Objekt können ein anderes Objekt sein:
Beispiel
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
Sie können auf verschachtelte Objekte mit der Punktnotation oder der Klammernotation zugreifen:
Beispiel
myObj.cars.car2;
oder:
Beispiel
myObj.cars["car2"];
oder:
Beispiel
myObj["cars"]["car2"];
oder:
Beispiel
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
Verschachtelte Arrays und Objekte
Werte in Objekten können Arrays sein und Werte in Arrays können Objekte sein:
Beispiel
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Um auf Arrays innerhalb von Arrays zuzugreifen, verwenden Sie eine for-in-Schleife für jedes Array:
Beispiel
for (let i in myObj.cars) {
x += "<h1>" + myObj.cars[i].name
+ "</h1>";
for (let j in myObj.cars[i].models) {
x += myObj.cars[i].models[j];
}
}
Eigenschaftsattribute
Alle Eigenschaften haben einen Namen. Darüber hinaus haben sie auch einen Wert.
Der Wert ist eines der Attribute der Eigenschaft.
Andere Attribute sind: aufzählbar, konfigurierbar und beschreibbar.
Diese Attribute definieren, wie auf die Eigenschaft zugegriffen werden kann (ist sie lesbar?, ist sie beschreibbar?)
In JavaScript können alle Attribute gelesen werden, aber nur das value-Attribut kann geändert werden (und nur, wenn die Eigenschaft schreibbar ist).
( ECMAScript 5 verfügt über Methoden zum Abrufen und Festlegen aller Eigenschaftsattribute.)
Prototyp-Eigenschaften
JavaScript-Objekte erben die Eigenschaften ihres Prototyps.
Das delete
Schlüsselwort löscht keine geerbten Eigenschaften, aber wenn Sie eine Prototypeigenschaft löschen, wirkt sich dies auf alle vom Prototyp geerbten Objekte aus.