Nella lezione sugli array, abbiamo visto che gli array permettono di salvare una lista di elementi. Gli oggetti, in JavaScript, sono elementi che possono salvare dati ma, a differenza degli array, sono associati ad un nome (il nome della proprietà).
Un oggetto può essere dichiarato utilizzando le parentesi graffe. Al suo interno, si inseriscono coppie di nome e valore, con la sintassi proprietà:valore. Queste coppie sono divise dalle altre con la virgola, che può essere omessa per l'ultima proprietà.
let persona = {
nome: "Mario",
cognome: "Rossi",
eta: 30
};Come hai visto nell'esempio, con gli oggetti si possono dare delle proprietà. Ad esempio, possiamo assegnare ad una persona le proprietà nome, cognome e eta. Ad ogni proprietà viene associato un valore: in questo caso, a nome corrisponde Mario, a cognome corrisponde Rossi e a eta corrisponde 30.
Un oggetto, come gli array, può contenere qualsiasi tipo di valore, quindi stringhe, numeri, valori booleani (true o false), array, funzioni (che vedremo più avanti) e anche un altro oggetto.
let persona = {
nome: "Mario",
eta: 30,
donna: false,
figli: ["Marco", "Alice", "Martina"]
};Come abbiamo detto prima, le proprietà di un oggetto sono i nomi associati ai valori. Ad esempio, la proprietà altezza è associata al valore 231 nell'esempio qui sotto.
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
piani: 31
};Ora, vediamo come visualizzare e modificare le proprietà.
Per accedere ad una proprietà, ci sono due diversi modi.
Puoi accedere ad una proprietà di un oggetto utilizzando la sintassi oggetto.proprietà. Vediamo un esempio:
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
piani: 31
};
alert(grattacielo.altezza); // Risultato: 231Se la proprietà di un oggetto è annidata all'interno di un altro oggetto, basta scrivere oggetto.proprietà.proprietà.
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
posizione: {
stato: "Italia",
regione: "Lombardia",
citta: "Milano"
}
};
alert(grattacielo.posizione.citta); // Risultato: "Milano"Puoi accedere ad una proprietà anche utilizzando la sintassi oggetto["proprietà"] e funziona allo stesso modo del primo metodo.
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
piani: 31
};
alert(grattacielo["altezza"]); // Risultato: 231Anche in questo caso, se hai due oggetti annidati, basta ripetere la sintassi in questo modo: oggetto["proprietà"]["proprietà"].
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
posizione: {
stato: "Italia",
regione: "Lombardia",
citta: "Milano"
}
};
alert(grattacielo["posizione"]["citta"]); // Risultato: "Milano"Puoi anche utilizzare entrambi i metodi per gli oggetti annidati. La sintassi è oggetto["proprietà"].proprietà oppure oggetto.proprietà["proprietà"].
let grattacielo = {
nome: "Torre UniCredit",
altezza: 231,
posizione: {
stato: "Italia",
regione: "Lombardia",
citta: "Milano"
}
};
alert(grattacielo["posizione"].citta); // Risultato: "Milano"Abbiamo visto come accedere ai valori delle proprietà. Ora, vediamo come modificarle.
Puoi modificare un valore semplicemente assegnando un altro valore alla proprietà:
let grattacielo = {
nome: "Torre UniCredit",
altezza: 100,
};
grattacielo.altezza = 231;Per aggiungere una proprietà ad un oggetto, si può eseguire una semplice assegnazione. Proviamo a creare un oggetto vuoto ed aggiungere la proprietà numero con valore 1.
let tavolo = { };
tavolo.numero = 1;