Gli oggetti nel linguaggio Javascript
Il linguaggio Javascript supporta le variabili e gli oggetti.
Come creare un oggetto
Per creare un oggetto in Javascript definisco una variabile indicando le proprietà dell'oggetto tra parentesi graffe.
Dopo il nome di ogni proprietà aggiungo il simbolo dei due punti : per assegnargli un valore.
- var persona = {
- nome: "Andrea",
- cognome: "Minini",
- annoNascita: 1968,
- stato: "Italia"
- };
Le proprietà devono essere separate tra loro tramite una virgola.
Come si accede a una proprietà dell'oggetto?
Per accedere a una specifica proprietà di un oggetto, digito il nome dell'oggetto (es. persona) seguito dalla proprietà che mi interessa leggere (es. nome) dopo un punto.
persona.nome;
Javascript accede all'oggetto, legge il valore associato alla proprietà nome e lo restituisce in output.
Ecco un esempio pratico
In alternativa, posso accedere a una proprietà dell'oggetto indicandola delimitata da virgolette tra parentesi quadre.
persona["nome"];
Il risultato finale è sempre lo stesso. Javascript accede alla proprietà dell'oggetto, legge il valore associato e lo restituisce in output.
A cosa serve questa modalità di accesso alternativa?
Questa seconda modalità di accesso è particolarmente utile perché mi permette di indicare le proprietà di un oggetto tramite l'utilizzo di una variabile.
var prop = "nome";
persona[prop];
Ad esempio, mi permette di leggere tutte le proprietà in un oggetto tramite un iteratore usando l'istruzione for abbinata con l'operatore in
var persona = { nome: "Andrea", cognome: "Minini", annoNascita: 1968, stato: "Italia" };
for (x in persona) {
document.write(x + " = " + persona[x] + " ");
}
Il risultato in uscita è l'elenco delle proprietà e dei rispettivi valori dell'oggetto persona
nome = Andrea cognome = Minini annoNascita = 1968 stato = Italia
Qual è la differenza tra una variabile e un oggetto?
Sia le variabili che gli oggetti sono usati per memorizzare le informazioni
- Le variabili sono utilizzate per registrare dei valori numeri o delle informazioni alfanumeriche ( stringhe di testo ). Si tratta di un'unica informazione. Nel caso delle variabili array anche più informazioni.
- Gli oggetti possono memorizzare al loro interno più informazioni. Ogni informazione è associata a una parola chiave detta proprietà. Inoltre, a differenza degli array, gli oggetti possono contenere al loro interno anche delle funzioni dette metodi. Ad esempio, l'oggetto "elenco telefonico" ha diverse proprietà: nome, telefono, indirizzo. Ogni proprietà può essere associata a un valore differente.
Perché è preferibile usare gli oggetti?
La programmazione a oggetti ha diversi vantaggi
- Mi permette di definire più informazioni (es. nome, cognome, anno di nascita, stato, ecc.) di un'entità utilizzando una sola variabile (persona). In questo modo evito di dover definire una variabile per ogni tipologia di informazione.
- La programmazione a oggetti si avvicina di più alla nostra rappresentazione della realtà quotidiana. E' quindi più comprensibile.
- Gli oggetti possono ereditare le proprietà e i metodi da una classe. Grazie all'utilizzo delle classi evito di dover definire ogni volta la struttura di un oggetto. L'ereditarietà mi permette di creare facilmente più oggetti usando la stessa classe.
I metodi degli oggetti
Agli oggetti sono associati anche dei metodi.
Cos'è un metodo?
Un metodo è una funzione associata all'oggetto. Riceve dei dati in input, li elabora e restituisce un output.
Ad esempio, un metodo dell'oggetto è la funzione display() per consente di visualizzare le proprietà e i dati dell'elenco.
Le tipologie di oggetti
Nel linguaggio Javascript esistono tre diverse tipologie di oggetti:
- Gli oggetti predefiniti
Sono già compresi nel linguaggio Javascript (es. Date e Math) e possono usarli tutti i siti web. - Gli oggetti del browser
Sono oggetti definiti nel browser (es. Alert). - Gli oggetti personalizzati
Sono creati ad hoc in base alle esigenze dello sviluppatore. Sono oggetti personalizzati.