Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 35 di 112
  • livello avanzato
Indice lezioni

Gli oggetti in JavaScript

Approfondire la costruzione di oggetti in JavaScript esaminando la definizione di oggetti tramite la funzione "factory" Object().
Approfondire la costruzione di oggetti in JavaScript esaminando la definizione di oggetti tramite la funzione "factory" Object().
Link copiato negli appunti

Come abbiamo visto parlando delle caratteristiche base del linguaggio, gli oggetti sono elementi fondamentali in JavaScript, tanto da poter affermare che, esclusi i tipi di dato primitivi, tutto è oggetto in questo linguaggio: array, funzioni, espressioni regolari e oggetti propriamente detti.

In questa parte della guida approfondiremo alcuni aspetti relativi alla costruzione di oggetti in JavaScript e alla loro natura, per capire come esprimere alcuni concetti della classica programmazione ad oggetti esaminando anche le differenze con altri linguaggi di programmazione.

Gli oggetti in JavaScript sono entità molto flessibili e dinamiche. Possiamo definire un oggetto come un contenitore di proprietà, cioè di elementi caratterizzati da un nome ed un valore.

In altre parole, un oggetto in JavaScript appare come una sorta di array associativo che è possibile costruire e modificare dinamicamente. Ad esempio, possiamo definire un oggetto nel seguente modo:

var persona = {
	nome: "Mario",
	cognome: "Rossi"
};

o, in modo del tutto equivalente, sfruttando l'oggetto Object che è alla base di qualsiasi oggetto JavaScript:

var persona = new Object({
	nome: "Mario",
	cognome: "Rossi"
});

Possiamo aggiungere in un secondo tempo una nuova proprietà senza particolari formalità:

persona.indirizzo = "Via Garibaldi, 50 - Roma";

È prevista anche la possibilità di eliminare una proprietà tramite l'istruzione delete:

delete persona.cognome;

Dopo l'eliminazione della proprietà cognome, ogni tentativo di accesso ad essa restituirà il valore undefined.

Possiamo anche assegnare ad un oggetto una proprietà con un nome che non segue le regole sintattiche per variabili e identificatori, come nel seguente esempio:

persona["data di nascita"] = new Date(1991, 6, 14);

Come possiamo vedere da questi semplici esempi, la manipolazione di un oggetto in JavaScript è abbastanza immediata e prevede poche formalità.

Ad esempio, si sarà notato che gli oggetti JavaScript non necessitano di classi, come invece avviene nella classica programmazione orientata agli oggetti, dove invece un oggetto è sempre un'istanza di una classe. Naturalmente la presenza di classi e di tutte le caratteristiche della programmazione orientata agli oggetti permette di ottenere diversi benefici in termini di modellazione dei dati e di strutturazione del codice, ma JavaScript è basato su un approccio diverso che approfondiremo nel corso di questa sezione.

Rivedendo la definzione di oggetto in JavaScript come di contenitore di proprietà si potrebbe obiettare che non sia stato preso in considerazione il fatto che un oggetto può avere dei metodi. In realtà la definizione data include la possibilità della presenza di metodi in un oggetto. Infatti, poiché in JavaScript anche le funzioni sono oggetti, la distinzione tra proprietà e metodi appare alquanto artificiosa. La definizione di un metodo infatti non è altro che l'assegnazione di una funzione ad una proprietà:

var persona.mostraNomeCompleto = function() {
	console.log(this.nome + " " + this.cognome);
};

Ti consigliamo anche