Oggetti in Javascript.
In questo articolo vediamo che cosa sono gli oggetti in Javascript e come si definiscono.
Per prima cosa definiamo cosa è un oggetto.
Un oggetto è una collezione di dati e funzionalità, ovvero proprietà e metodi, che descrivono le caratteristiche di un oggetto e cosa può fare.
Se pensiamo ad un oggetto nel mondo reale, ad esempio un automobile, una borsa, un paio di occhiali, o una qualsiasi cosa, questi possono essere rappresentati da oggetti nel software, andando a definire per ognuno di questi quali sono le sue proprietà e i suoi metodi.
Ad esempio un automobile avrà proprietà come il colore, il numero di portiere e metodi come ad esempio apriPortaAnteriore(), azionaTergicristallo().
Per definire un oggetto in Javascript per prima cosa abbiamo bisogno di una variabile che conterrà l’oggetto. Buona norma è usare una costante, const.
Vediamo ad esempio di definire un oggetto automobile. (Integreremo meno proprietà e metodi rispetto a quelli che dovremmo pensando ad un automobile vera.)
const car = {
color: "blue",
numberDoors: 4,
automatic: false
seat = {
material: "leather",
colore: "gray"
}
doorOpened: false
openDoor = function(doorStatus){
this.doorOpened = doorStatus;
}
}
Per definire un oggetto sono necessarie le parentesi graffe di apertura e chiusura. Dentro le parentesi inseriamo le proprietà nella forma nomeProprietà: valore. Le proprietà possono essere di qualsiasi tipo, stringhe, numeri, booleani, e anche altri oggetti come seat che rappresenta un sedile. Proprietà e metodi sono separati l’uno dall’altra dalla virgola.
openDoor è invece un metodo. Un metodo è una proprietà a cui è assegnata una funzione. Può venire ad esempio usata per modificare dei valori delle proprietà dell’oggetto. Nel nostro caso possiamo chiamare la funzione openDoor nel seguente modo
car.openDoor(true);
E così facendo la proprietà doorOpened verrà impostata a true.
La keyword this, che nell’esempio è usata all’interno del metodo openDoor, server per riferirci all’oggetto corrente. Usando il this in this.doorOpened = doorStatus, stiamo dicendo che vogliamo modificare la proprietà doorOpened proprio dell’oggetto stesso su cui abbiamo chiamato il metodo e non qualche altra proprietà.