Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti...

Post on 02-May-2015

216 views 0 download

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}}