Abbiamo già accennato al fatto che JS prevede molti modi diversi per creare un oggetto. Sempre con riferimento a un oggetto che rappresenta un punto sul piano, si consideri l'esempio seguente:
In questo caso la dichiarazione dell'oggetto viene divisa in due parti. Prima viene definita una funzione Punto() detta costruttore o prototipo dell'oggetto.
L'oggetto vero e proprio viene creato con la parola chiave new nell'istruzione:
Possiamo considerare la funzione costruttore Punto() come una sorta di modello in base al quale viene poi creato l'oggetto stesso. Per esempio potremmo creare due oggetti con la stessa struttura semplicemente ripetendo:
In questo modo punto1 e punto2 sono due oggetti fatti nella stessa maniera, cioè contenenti le stesse proprietà e gli stessi metodi.
E' anche interessante osservare come viene definito il metodo distanza all'interno del costruttore Punto():
Si noti l'uso singolare della parola chiave function() usata a destra di un uguale di assegnazione, allo scopo di assegnare a this.distanza il codice del metodo da eseguire.
Si osservi come questo modo di dichiarare una funzione, sia quello già visto in generale, che tratta le funzioni "come se fossero delle variabili":
Infine consideriamo il seguente ultimo esempio, il quale fa uso di un costruttore con parametri, cioè di un costruttore mediante il quale è possibile assegnare valori iniziali alle proprietà x e y dell'oggetto:
Vedremo fra poco come questa modalità di creazione di un oggetto attraverso una funzione costruttore e la parola chiave new sia molto utile per comprendere gli oggetti predefiniti in JS.
Le nuove versioni del linguaggio JS (ECMAScript6 del 2015 e ECMAScript7 del 2016) hanno introdotto anche in JS (come in C++ e linguaggi simili) l'operatore Class per la definizione di classi. Per esempio con la nuova sintassi il prototipo della classe Punto diventerebbe:
Sito realizzato in base al template offerto da
http://www.graphixmania.it