Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'ereditarietà in JavaScript

Analisi di uno degli aspetti più funzionali della programmazione ad oggetti
Analisi di uno degli aspetti più funzionali della programmazione ad oggetti
Link copiato negli appunti

Uno degli aspetti più funzionali e anche divertenti della programmazione ad oggetti è senza dubbio l'ereditarietà. Tramite essa è possibile infatti creare diverse classi tra di loro relazionate, di cui una estende le funzionalità presenti in un'altra.

JavaScript presenta un'architettura un po' strana riguardo all'ereditarietà in quanto la supporta pienamente, ma non presenta alcuni strumenti utili per poterla utilizzare seriamente. Grazie ad alcune piccole possibile, possiamo emulare quei comportamenti che non sono stati inseriti come caratteristiche intrinseche del linguaggio.

La funzione inherits

Uno di questi "meccanismi mancanti" è quello di permettere di definire una classe come sottoclasse di un'altra. Questo può essere risolto con la funzione inherits:

<script>
Function.prototype.inherits = function(superclass) {
  var temp = function() {};
  temp.prototype = superclass.prototype;
  this.prototype = new temp();
}
</script>

Con questa funzione basta scrivere ClasseFiglia.inherits(ClassePadre) per creare di fatto una ereditarietà. Tramite questa funzione è possibile inoltre invocare il costruttore padre all'interno del costruttore figlio semplicemente chiamando il nome della classe con i parametri necessari.

Spesso quando si crea una classe non si immagina che qualcuno potrà poi estenderla, e quindi non si implementa il codice in questa ottica. Il nostro esempio di prima calza proprio a pennello in quanto nella situazione corrente è un po' difficile aggiungere nuove funzionalità alla DataGrid mantenendone la struttura interna. Questo è il classico errore nel quale incorre lo sviluppatore alle prime armi che non pensa all'estendibilità futura del codice.

Nella prossima lezione vediamo un esempio di codice estensibile, proprio a partire dal nostro primo esempio.

Ti consigliamo anche