JavaScript/Costruttori e prototipi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
nuovo modulo
 
Ramac (discussione | contributi)
cambio avanzamento a 100%
Riga 11:
}
 
var macchina = new Macchina(); //notare in questo caso la distinzione tra maiuscolo e minuscolo in questo caso
</source>
Per fare riferimento alle proprietà dell'oggetto, all'interno della funzione usiamo la parola chiave <code>this</code>:
Riga 25:
</source>
 
Per creare un metodo inseriamo invece una funzione all'interno del costruttore:
<source lang=javascript>
function Macchina(mod) { //passiamo qualche parametro al costruttore...
this.modello = mod;
this.carburante = 0;
function rifornisci(euro) {
var litri = euro/prezzo_benzina;
this.carburante += litri;
}
}
</source>
La creazione di oggetti personalizzati è in realtà piuttosto inutile nei casi presentati dagli esempi, ma può risultare comoda per applicazioni più complesse: l'uso degli oggetti è un modo chiaro ed efficacie per organizzare i dati.
 
== Modificare gli oggetti predefiniti ==
Molto interessante è anche la possibilità di accedere al '''prototipo''' di un oggetto, permettendo così di modificare anche tutte le sue istanze.
<br/>Ad esempio, il seguente spezzone di codice aggiunge a tutti gli array un metodo che prende un valore e restituisce <code>true</code> se è presente nell'array. Per fare questo accediamo al suo prototipo:
<source lang=javascript>
Array.prototype.contains = function (element) {
for(i in this) { //scorre tutti gli elementi
//se trova l'elemento restituisce true ed esce dalla funzione
if(this[i] == element) return true;
}
return false; //questa riga verrà eseguita solo se non viene trovato nulla
}
 
 
var arr = new Array('a', 'b', 'c', 'd', 'e', 'f');
if (arr.contains('g') { //falso
//...
}
 
if (arr.contains('a') { //vero
//...
}
</source>
[[Categoria:JavaScript|Costruttori e prototipi]]
 
{{Avanzamento|25100%|2223 marzo 2008}}