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

7
Javascript programmazione ad oggetti

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

Page 1: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

Javascript

programmazione ad oggetti

Page 2: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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

Page 3: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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)

Page 4: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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()

Page 5: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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

Page 6: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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!!)

Page 7: Javascript programmazione ad oggetti. Javascript linguaggio INTERPRETATO Orientato agli oggetti DHTML fruibile tramite browser Tecnologia Ajax Flash (actionscript.

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