Accesso non consentito - Necessaria Registrazione

Javascript orientato agli oggetti scritto da algweb

In javascript si può creare un oggetto semplicemente nel seguente modo:

1 persona=new object();
2 persona.nome="bart";
3 persona.cognome="simpson" 

Questa seria di istruzioni ci permette di disporre di un oggetto che ha due proprietà nome e cognome. E’ ovvio quale sia l’output della seguente istruzione:

1 document.write("Nome: "+persona.nome+" Cognome:"+persona.cognome);

Poichè è piuttosto banale la considerazione che ogni oggetti persona ha le proprietà nome e cognome ci si aspetta che javascript metta a disposizione uno shortcut per allegerire il codice per la creazione di una famiglia di oggetti persona. Stiamo parlando di come javascript intende il concetto di costruttore. In javascript, un costruttore è una semplice funzione richiamata mediante l’operatore new.

1 function Persona(nome, cognome) {
2   this.nome = nome;
3   this.cognome = cognome;
4 }

Utilizzando il costruttore in questo modo:

1 var homer = new Persona("homer","simpson");
2 var bart  = new Persona("bart","simpson");

A questo punto si è in grado di creare e utilizzare oggetti con un numero arbitrario di proprietà. Però un oggetto non è solo incapsulamento di dati ma anche comportamento. Vale a dire, dobbiamo avere la possbilità di poter scrivere dei metodi d’istanza, delle funzioni per i nostri oggetti. In javascript, è possibile risolvere questo problema in questo modo:

 1 
 2 function say_hello_to(name) {
 3   return "Hi, "+name;
 4 }
 5 
 6 function Persona(nome, cognome) {
 7   this.nome = nome;
 8   this.cognome = cognome;
 9   this.sayHello=say_hello;
10 }

Ovviamente è possibile utilizzare la funzione in questo modo:

1 var homer = new Persona("homer","simpson");
2 document.write(home.sayHello("marge"));

Essendo javascript un linguaggio dinamico permette di estendere le instanze di una specifica classe a runtime mediante l’uso della parola chiave prototype. Infatti, supponendo di voler aggiungere costante age alla classe persona si può procedere in questo modo:

1 Persona.age=null;
2 var bart  = new Persona("bart","simpson");
3 //a questo punto possiamo usare la prorietà definita con prototype
4 bart.age=8;
5 document.write(bart.sayHello("algweb"));
6 document.write("Mi chiamo "+bart.name+" e ho "+bart.age+" anni");

Ovviamente, tutti gli esempi che abbiamo fanno non illustrano a pieno le possibilità di questo linguaggio rspetto alla programmazione a oggetti. Però, si spera rappresenti un buon punto di partenza per farsi un’idea di come programmare a oggetti con javascript.

Argomenti correlati

Commenti

Esegui il Login oppure registrati per scrivere un commento.

Statistiche

Sono presenti 0 commenti e 2 tags.