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.
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.
PhantomJS, headless browser per test con JavascriptIl tool ideale per realizzare, da terminale, operazioni in remoto su... |
Creare e leggere QR Code in JavaScriptApplicazioni 'QR Code enabled' per il Web e per il mobile,... |
Jquery UI Map: web-mapping con Google Maps e jQueryUn plugin di jQuery UI per intefacciare applicaizoni Web/mobile con... |
Scrollorama e Scrolldeck, slideshow d'effetto con jQueryPlugin jQuery per ottenere Slideshow con diversi effetti di scrolling |
jCanvas, un primo semplice graficoAlla scoperta della libreria jCanvas, per semplificare il disegno e... |
Guida Node.jsIl framework che permette di per usare V8, l'interprete JavaScript... |
Canvas, guida ai frameworkCanvas, tra gli elementi di HTML5 è forse quello di maggior impatto.... |
Guida Javascript: tecniche avanzateUna guida dal taglio pratico per approfondire la programmazione a... |
Ogni martedì, direttamente nella tua e-mail: guide, articoli, script, novità e approfondimenti tecnici su JavaScript.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso JQuery e Ajax per Webmaster03 Luglio 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |