DEFINIRE UNA CLASSE E IL SUO COSTRUTTORE

JS

Una constructor function normalmente riceve in input dei parametri. La keyword this fa in modo che gli oggetti creati dalla constructor function abbiano una copia di quelle proprietà, proprietà aventi come valori i valori passati in input. Vediamo con un esempio di codice le differenze tra una constructor function e una classe.

Copy to Clipboard

Creare un oggetto da una constructor function o creare una istanza da una classe con le medesime proprietà da i medesimi risultati. La differenza è che le proprietà di una classe devono essere inizializzate in un metodo speciale chiamato constructor.

I METODI

All’interno di una classe non possiamo definire variabili con let, var o const come si fa per le constructor function. I metodi definiti in una classe vengono inseriti nell’oggetto prototype della classe.

Copy to Clipboard

PROPRIETA’ PUBBLICHE E PRIVATE

avatar definita nel codice sotto riportato è una proprietà pubblica accessibile attraverso gli oggetti. Da ES2019 possiamo definire proprietà private accessibili solo internamente alla classe.

Copy to Clipboard

METODI GETTER E SETTER

Un metodo getter restituisce un valore, un metodo setter imposta il valore di una proprietà. Gli oggetti della classe si interfacciano ai metodi getter e setter come se fossero proprietà.

Copy to Clipboard

METODI STATICI E PROPRIETA’ STATICHE

In alcuni casi potremmo voler accedere a un metodo di una classe senza istanziarla. Possiamo farlo con i metodi statici. Un metodo statico non può accedere a metodi non statici mentre vale il viceversa.

Copy to Clipboard

ESTENDERE UNA CLASSE

Utilizzando la keyword extends possiamo ereditare proprietà e metodi da una classe chiamata superclasse in un’altra chiamata solitamente sottoclasse o classe derivata.

Copy to Clipboard

RELAZIONI TRA SUPERCLASSI E SOTTOCLASSI

Utlizzando instanceof possiamo capira la gerarchia tra superclassi e sottoclasssi e i loro prototype. 

Copy to Clipboard
Relazioni tra sotto classi e superclassi

LINK AI POST PRECEDENTI

IL LINGUAGGIO JAVASCRIPT

LINK AL CODICE SU GITHUB

GITHUB