Indice dei contenuti

Classi

JavaScript supporta il concetto di classi come sintassi per la creazione di oggetti. Le classi specificano le proprietà e i metodi che gli stessi oggetti creati da una classe avranno.

Quando un oggetto viene creato in base alla classe, il nuovo oggetto viene indicato come istanza della classe. Le nuove istanze vengono create utilizzando la parola new.

L'esempio sotto mostra una classe che rappresenta una Canzone. Un nuovo oggetto chiamato miaCanzone viene creato sotto e poi il metodo .play() viene richiamato.

class Canzone {
   constructor() {
     this.title;
     this.author; 
   }
 
   play() {
     console.log('Sta suonando la canzone!');
   }
}

const miaCanzone = new Canzone();
miaCanzone.play();

Le proprietà negli oggetti sono separate da virgole. Questo non avviene nella classe, inoltre, i metodi nelle classi non hanno separatori tra loro.

Costruttore di classe

Le classi possono avere il metodo constructor. Questo è un metodo speciale che viene chiamato quando l'oggetto viene creato (istanziato). I metodi costruttore sono solitamente usati per impostare i valori iniziali dell'oggetto.

class Canzone {
   constructor(titolo, autore) {
     this.titolo = titolo;
     this.autore = autore;
   }
}

const miaCanzone = new Canzone('Nothing else matter', 'Metallica');
console.log(miaCanzone.titolo);

Metodi statici

All'interno di una classe JavaScript, la parola chiave static definisce un metodo statico per una classe. I metodi statici non sono chiamati su singole istanze della classe, ma sono chiamati sulla classe stessa. Pertanto, essi tendono ad essere metodi generali (di utilità).

class Cane {
   constructor(nome) {
     this._nome = nome;  
   }

   presenta() {
     console.log('Questo è ' + this._nome + ' !');  
   }

   static abbaia() {
     console.log('BauBau!');  
   }
}

const mioCane = new Cane('Bob');
mioCane.presenta();

Cane.abbaia();

Extends

Le classi JavaScript supportano il concetto di eredità, una classe figlia può ampliare una classe genitore. Questo si ottiene utilizzando la parola chiave extends come parte della definizione della classe.

Le classi figlie hanno accesso a tutte le proprietà di istanza e ai metodi della classe genitore. Possono aggiungere le proprie proprietà ed i propri metodi. Un costruttore di classi figlio chiama il costruttore della classe genitore usando il metodo super().

class Media {
   constructor(info) {
     this.dataPubb = info.dataPubb;
     this.nome = info.nome;
   }
}

class Canzone extends Media {
   constructor(canzoneData) {
     super(canzoneData);
     this.autore = canzoneData.autore;
   }
}

const myCanzone = new Canzone({
   autore: 'Queen',
   nome: 'Bohemian Rhapsody',
   dataPubb: 1975
});

<<<

Nessun argomento precedente

>>>

Nessun argomento seguente
Corso JavaScript per principianti a 12,99 su Udemy
Sintassi e definizioni
Vai alla pagina
Tipi di Dato
Vai alla pagina
Controllo del flusso
Vai alla pagina
Ambito di azione
Vai alla pagina
Cos'è jQuery?
Vai alla pagina
Usare jQuery
Vai alla pagina
Selettori jQuery
Vai alla pagina
Manipolazione DOM
Vai alla pagina
Attributi jQuery
Vai alla pagina
jQuery e dimensioni
Vai alla pagina
Manipolazione CSS
Vai alla pagina
jQuery Animazione
Vai alla pagina
Eventi jQuery
Vai alla pagina
jQuery Ajax
Vai alla pagina