logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Gli oggetti

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à). 

Come dichiarare un oggetto

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.

Tipi di dati

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"]
};

Le proprietà di un oggetto

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à.

Accedere ad una proprietà

Per accedere ad una proprietà, ci sono due diversi modi.

Metodo 1: utilizzare il punto

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: 231

Se 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"

Metodo 2: utilizzare le parentesi quadre

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: 231

Anche 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"

Metodo 1 e 2 con oggetti annidati

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"

Modificare il valore di una proprietà

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;

Aggiungere una proprietà ad un oggetto

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;

Prova!Completa gli spazi vuoti con il testo appropriato.
// Aggiungi all'oggetto la proprietà "memoria"
// Usa la sintassi oggetto.proprietà
let computer = { };
= "256GB";

Prova!Scegli l'opzione corretta tra quelle elencate.
let grattacielo = {
  posizione: {
    stato: "Italia",
    regione: "Lombardia",
  }
};
alert(__________________); // Risultato: "Lombardia"