Proprietà dell'oggetto JavaScript
Le proprietà sono la parte più importante di qualsiasi oggetto JavaScript.
Proprietà JavaScript
Le proprietà sono i valori associati a un oggetto JavaScript.
Un oggetto JavaScript è una raccolta di proprietà non ordinate.
Le proprietà di solito possono essere modificate, aggiunte ed eliminate, ma alcune sono di sola lettura.
Accesso alle proprietà JavaScript
La sintassi per accedere alla proprietà di un oggetto è:
objectName.property // person.age
o
objectName["property"] // person["age"]
o
objectName[expression] // x = "age"; person[x]
L'espressione deve restituire un nome di proprietà.
Esempio 1
person.firstname + " is " + person.age + " years old.";
Esempio 2
person["firstname"] + " is " + person["age"] + " years old.";
JavaScript per... in Loop
L'istruzione JavaScript for...in
scorre le proprietà di un oggetto.
Sintassi
for (let variable in object) {
// code to be executed
}
Il blocco di codice all'interno del for...in
ciclo verrà eseguito una volta per ogni proprietà.
Scorrendo le proprietà di un oggetto:
Esempio
const person = {
fname:" John",
lname:" Doe",
age: 25
};
for (let x in person) {
txt += person[x];
}
Aggiunta di nuove proprietà
Puoi aggiungere nuove proprietà a un oggetto esistente semplicemente assegnandogli un valore.
Supponiamo che l'oggetto persona esista già - puoi quindi assegnargli nuove proprietà:
Esempio
person.nationality = "English";
Eliminazione delle proprietà
La delete
parola chiave elimina una proprietà da un oggetto:
Esempio
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person.age;
o eliminare persona["età"];
Esempio
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
delete person["age"];
La delete
parola chiave elimina sia il valore della proprietà che la proprietà stessa.
Dopo l'eliminazione, la proprietà non può essere utilizzata prima di essere nuovamente aggiunta.
L'
delete
operatore è progettato per essere utilizzato sulle proprietà degli oggetti. Non ha effetto su variabili o funzioni.
L' delete
operatore non deve essere utilizzato su proprietà dell'oggetto JavaScript predefinite. Può mandare in crash la tua applicazione.
Oggetti nidificati
I valori in un oggetto possono essere un altro oggetto:
Esempio
myObj = {
name:"John",
age:30,
cars: {
car1:"Ford",
car2:"BMW",
car3:"Fiat"
}
}
Puoi accedere agli oggetti nidificati usando la notazione punto o la notazione parentesi:
Esempio
myObj.cars.car2;
o:
Esempio
myObj.cars["car2"];
o:
Esempio
myObj["cars"]["car2"];
o:
Esempio
let p1 = "cars";
let p2 = "car2";
myObj[p1][p2];
Array e oggetti nidificati
I valori negli oggetti possono essere array e i valori negli array possono essere oggetti:
Esempio
const myObj =
{
name: "John",
age: 30,
cars: [
{name:"Ford",
models:["Fiesta", "Focus", "Mustang"]},
{name:"BMW", models:["320", "X3", "X5"]},
{name:"Fiat", models:["500", "Panda"]}
]
}
Per accedere agli array all'interno degli array, utilizzare un ciclo for-in per ogni array:
Esempio
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];
}
}
Attributi di proprietà
Tutte le proprietà hanno un nome. Inoltre hanno anche un valore.
Il valore è uno degli attributi della proprietà.
Altri attributi sono: enumerabile, configurabile e scrivibile.
Questi attributi definiscono come è possibile accedere alla proprietà (è leggibile?, è scrivibile?)
In JavaScript, tutti gli attributi possono essere letti, ma solo l'attributo value può essere modificato (e solo se la proprietà è scrivibile).
( ECMAScript 5 ha metodi sia per ottenere che per impostare tutti gli attributi delle proprietà)
Proprietà del prototipo
Gli oggetti JavaScript ereditano le proprietà del loro prototipo.
La delete
parola chiave non elimina le proprietà ereditate, ma se elimini una proprietà prototipo, influirà su tutti gli oggetti ereditati dal prototipo.