all’interno delle lingue correnti, che vengono principalmente dalle prime lingue strutturate come Algol o BCPL, il Capacità di creare funzioni per riutilirle in vari modi, all’interno dello stesso modulo programma o in diversi moduli, è stato uno dei fondamentali della programmazione dei sistemi informatici. Tuttavia, questo paradigma è stato a corto di nuove situazioni che stavano emergendo nel tempo, come la programmazione del videogame o l’intelligenza 3D e artificiale. Alla fine degli anni ’70, ha iniziato a teorizzarsi sui linguaggi di programmazione che utilizzano entità indipendenti che sono state autonome per svolgere le applicazioni. Come abbiamo detto in precedenza, un programma è composto da codice e dati. Gli oggetti sono unità che contengono il proprio codice e dati per la propria auto-funzionamento. Possiamo dire che sono programmi all’interno dei programmi.
Pertanto, possiamo capire che gli oggetti possono essere utilizzati come variabili, per il nostro uso. Ma non possiamo definire le variabili dell’oggetto senza essere in grado di dare loro una forma. La forma degli oggetti è i dati (Proprietà) e il codice (funzioni) che contiene l’oggetto. Questa è chiamata la classe dell’oggetto. Per definire le classi in JavaScript, lo facciamo per mezzo di funzioni, come ad esempio:
function Persona(nombre) { this.nombre = nombre; this.color_pelo = 'negro'; this.peso = 75; this.altura = 165; this.sexo = 'varón'; this.edad= 26; }
Guardiamo bene come questa funzione è strutturata. Si chiama il costruttore di classe, e in esso definiamo i dati della classe, che saremo in grado di utilizzare quando creiamo oggetti con esso. Nota l’uso della parola riservata. Questa parola serve a identificare l’oggetto in sé all’interno della definizione della classe. Quando scriviamo
this.peso = 75;
Stiamo creando la proprietà “peso” della classe “Person”. Quando creiamo una proprietà nel costruttore e forniamo un valore, come in questo caso, stiamo assegnando un valore predefinito. Tutti gli oggetti creati con questo costruttore conterranno una proprietà “peso” con quel valore iniziale, anche se quindi possiamo cambiarlo quando si utilizza l’oggetto. Per definire un oggetto di questa classe, dovremmo solo fare questo:
var hombre = new Persona('Pepe');
Qui abbiamo definito l’oggetto “uomo”, che conterrà tutto il Proprietà definite nella “persona” della classe funzione. Se vogliamo cambiare il tuo valore, dobbiamo solo fare qualcosa del genere:
hombre.peso = 80;
In questo modo, i dati definiti per questo oggetto cambiano. Ma se abbiamo definito più oggetti tipo persona, ognuno di essi conterrà le stesse proprietà ma con valori diversi. Nessun oggetto ha lo stesso valore di un altro oggetto della stessa classe a meno che non lo assegniamo esplicitamente.
var mujer = new Persona('Ana'); mujer.peso = 67; mujer.sexo = 'mujer';
In questo caso abbiamo fatto lo stesso, ma indichiamo il suo peso, indipendente dalla variabile “uomo”. Quindi, possiamo avere così tanti oggetti della stessa classe che vogliamo eseguire le operazioni che sono pertinenti. Un’ultima cosa sui costruttori: come possiamo vedere, possiamo passare i parametri, che possiamo convertire nei valori delle proprietà degli oggetti di quella classe.