Eigenschappen JavaScript -object
Eigenschappen zijn het belangrijkste onderdeel van elk JavaScript-object.
JavaScript-eigenschappen
Eigenschappen zijn de waarden die aan een JavaScript-object zijn gekoppeld.
Een JavaScript-object is een verzameling ongeordende eigenschappen.
Eigenschappen kunnen meestal worden gewijzigd, toegevoegd en verwijderd, maar sommige zijn alleen-lezen.
JavaScript-eigenschappen openen
De syntaxis voor toegang tot de eigenschap van een object is:
objectName.property // person.age
of
objectName["property"] // person["age"]
of
objectName[expression] // x = "age"; person[x]
De expressie moet resulteren in een eigenschapsnaam.
voorbeeld 1
person.firstname + " is " + person.age + " years old.";
Voorbeeld 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript voor...in Loop
De JavaScript- for...in
instructie doorloopt de eigenschappen van een object.
Syntaxis
for (let variable in object) {
// code to be executed
}
Het codeblok in de for...in
lus wordt één keer uitgevoerd voor elke eigenschap.
Door de eigenschappen van een object bladeren:
Voorbeeld
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
Nieuwe eigenschappen toevoegen
U kunt nieuwe eigenschappen aan een bestaand object toevoegen door er eenvoudig een waarde aan te geven.
Neem aan dat het person-object al bestaat - je kunt het dan nieuwe eigenschappen geven:
Voorbeeld
person.nationality = "English";
Eigenschappen verwijderen
Het delete
sleutelwoord verwijdert een eigenschap van een object:
Voorbeeld
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
of verwijder persoon["leeftijd"];
Voorbeeld
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
Het delete
sleutelwoord verwijdert zowel de waarde van de eigenschap als de eigenschap zelf.
Na verwijdering kan de eigenschap niet worden gebruikt voordat deze weer is toegevoegd.
De
delete
operator is ontworpen om te worden gebruikt op objecteigenschappen. Het heeft geen effect op variabelen of functies.
De delete
operator mag niet worden gebruikt voor vooraf gedefinieerde JavaScript-objecteigenschappen. Het kan uw toepassing laten crashen.
Geneste objecten
Waarden in een object kunnen een ander object zijn:
Voorbeeld
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
U hebt toegang tot geneste objecten met behulp van de puntnotatie of de haakjesnotatie:
Voorbeeld
myObj.cars.car2;
of:
Voorbeeld
myObj.cars["car2"];
of:
Voorbeeld
myObj["cars"]["car2"];
of:
Voorbeeld
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
Geneste arrays en objecten
Waarden in objecten kunnen arrays zijn en waarden in arrays kunnen objecten zijn:
Voorbeeld
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Gebruik voor elke array een for-in-lus om toegang te krijgen tot arrays binnen arrays:
Voorbeeld
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];
}
}
Eigenschapskenmerken
Alle woningen hebben een naam. Daarnaast hebben ze ook een waarde.
De waarde is een van de attributen van de eigenschap.
Andere attributen zijn: opsombaar, configureerbaar en beschrijfbaar.
Deze attributen bepalen hoe toegang tot de eigenschap kan worden verkregen (is het leesbaar?, is het beschrijfbaar?)
In JavaScript kunnen alle attributen worden gelezen, maar alleen het value-attribuut kan worden gewijzigd (en alleen als de eigenschap beschrijfbaar is).
(ECMAScript 5 heeft methoden voor het verkrijgen en instellen van alle eigenschapskenmerken)
Prototype-eigenschappen
JavaScript-objecten erven de eigenschappen van hun prototype.
Het delete
sleutelwoord verwijdert geen overgenomen eigenschappen, maar als u een prototype-eigenschap verwijdert, heeft dit invloed op alle objecten die zijn overgenomen van het prototype.