In termini generali, un oggetto è una qualsiasi entità che raccolga dati all’interno di un programma o sistema.
Ciascun oggetto può essere composto di vari tipi di dato, ciascuno con le sue caratteristiche e le operazioni a lui consentite, a seconda di come viene definito.
Poiché si tratta di insiemi di elementi che possono essere modificati, bisogna definire gli oggetti come variabili.
Per comprendere meglio, parti da un insieme di quattro dati, anche composti:
1
“Two”
three: 3
4, 5 (due cifre separate da una virgola)
Un modo neutro per definire un oggetto con questi dati è il seguente:
let myObject = { "0": 1, "1": "two", "2": { "three": 3 }, "3": [4, 5] };
Per vederlo nel browser bisogna aggiungere l’output su console:
console.log(myObject);
stampa tutti gli elementi, probabilmente in una forma compatta di questo tipo:
{0: 1, 1: 'two', 2: {…}, 3: Array(2)} console.log(myObject[2]);
Mostra solo il terzo.
Ricorda che myObject è una variabile, quindi puoi cambiarne i valori.
myObject[2] = [4, 8, 16]
Non segnala errore, e
console.log(myObject);
segnala il nuovo valore del terzo elemento, forse in questa forma:
0: 1, 1: ‘two’, 2: Array(3), 3: Array(2)}
Dove l’elemento di indice 2 è segnalato con Array(3), un modo diverso rispetto a prima, ad indicare la modifica.
Ed ecco una domanda per te: è possibile che gli elementi dell’array JavaScript siano a loro volta un array? La risposta è talmente ovvia!
È opportuno ricordare che esistono diversi modi per creare un oggetto in JavaScript.
Proviamo a fare una prima lista:
let object = new Object(); // la cosiddetta notazione di costruttore: let object = {key1: value1, key2: value2, ...} // notazione chiave-valore function MyObject(param1, param2) { questa.proprieta1 = param1; questa.proprieta2 = param2; } // con una funzione
Un modo più complesso, che non dettaglieremo, prevede l’uso di una classe ES6, secondo le specifiche ECMAScript.
In ogni caso, una volta creato l’oggetto, è possibile accedere e modificare le sue proprietà e metodi utilizzando la notazione a punti (object.property).
Come hai letto prima, Array, Espressioni regolari e anche funzioni sono oggetti. Vediamo i primi due in dettaglio.