L'ereditarietà in JavaScript



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.

Ultimi articoli JavaScript

PhantomJS, headless browser per test con Javascript

Il tool ideale per realizzare, da terminale, operazioni in remoto su...

Creare e leggere QR Code in JavaScript

Applicazioni 'QR Code enabled' per il Web e per il mobile,...

Jquery UI Map: web-mapping con Google Maps e jQuery

Un plugin di jQuery UI per intefacciare applicaizoni Web/mobile con...

Scrollorama e Scrolldeck, slideshow d'effetto con jQuery

Plugin jQuery per ottenere Slideshow con diversi effetti di scrolling

jCanvas, un primo semplice grafico

Alla scoperta della libreria jCanvas, per semplificare il disegno e...

Altri articoli

Guide JavaScript

Guida Node.js

Il framework che permette di per usare V8, l'interprete JavaScript...

Canvas, guida ai framework

Canvas, tra gli elementi di HTML5 è forse quello di maggior impatto....

Guida Javascript: tecniche avanzate

Una guida dal taglio pratico per approfondire la programmazione a...

Altre guide

Newsletter @JavaScript

Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster base

18 Giugno 2012 a Milano
Disponibilità: 6 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso JQuery e Ajax per Webmaster

03 Luglio 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti

Corso Webmaster base

11 Giugno 2012 a Roma
Disponibilità: 7 Posti