Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti...
-
Upload
orabella-zanetti -
Category
Documents
-
view
216 -
download
0
Transcript of Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti...
Javascript
programmazione ad oggetti
Javascript
• linguaggio INTERPRETATO• Orientato agli oggetti
• DHTML fruibile tramite browser• Tecnologia Ajax• Flash (actionscript 2.0)• Window Scripting Host (WSH)• Pagine dinamiche lato server (.ASP)• Pdf dinamici
Oggetti in javascript
• Javascript non ha classi ma si può creare un oggetto tramite una funzione costruttore
• All'interno di questa funzione si utilizza this per indicare l'oggetto
• Le variabili e le funzioni definite con il prefisso this. saranno variabili e metodi di istanza
• Le variabili e le funzioni definite con nomeDellaClasse.prototype come prefisso saranno variabili e metodi di classe (es: toString, ecc.)(in pratica sono accessibili per qualsiasi istanza, ma non vengono visualizzati con for .. in)
Funzioni costruttore
• Ogni funzione può diventare un costruttore• L'operatore unario new fa diventare una funzione un
costruttore• L'operatore new ritorna il nuovo oggetto appena creato
function Led(){var stato = "OFF" //on - off: variabile protetta (var)this.accendi = function () { stato = "ON" }this.spegni = function () { stato = "OFF" }this.mostra = function () { return stato }}a = new Led(); b= new Led()
Ereditarietà in javascript
eredità prototipale...si passa dal prototipo
function ClassePadre(...) {....} //definita la classe padre
ClasseFiglia.prototype = new ClassePadre()ClasseFiglia.prototype.constructor =ClasseFiglia
function ClasseFiglia(...) { //se si vuole richiamare la classePadre classePadre.call(this, eventuali parametri)}
Le variabili nelle funzioni costruttore
function Led(){var stato = "OFF" //on - offthis.accendi = function (){stato = "ON"}this.spegni = function (){stato = "OFF"}this.mostra = function (){return stato}
}a = new Led()//qui stato è una variabile di istanza protettaa.stato //undefined
function Led(){this.stato = "OFF" //on - offthis.accendi = function (){this.stato = "ON"}this.spegni = function (){this.stato = "OFF"}this.mostra = function (){return this.stato}
}
//qui stato è una proprietà pubblica (lettura e scrittura, SCONSIGLIATO!!)
un po di colore...
Creiamo la classe LedColorato che eredita dalla classe Led
LedColorato.prototype = new Led //attenzione senza parentesiLedColorato.prototype.constructor = LedColorato
function LedColorato( coloreIniziale ){var colore = coloreInizialethis.cheColore= function() {return colore}}