JavaScript/Costruttori e prototipi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Ramac (discussione | contributi)
m fix
Riga 1:
{{JavaScript}}
In questo capitolo vedremo come creare nuovi '''oggetti e prototipi''' e come modificare gli oggetti esistenti in JavaScript. Questa è una delle grandi possibilità della programmazione orientata agli oggetti, ovvero quella di poter agire sul "cuore" del linguaggio stesso.
 
== Creare oggetti personalizzati ==
Come abbiamo spiegato nel capitolo sugli [[JavaScript/Oggetti|capitolooggetti precedentedi JavaScript]], per definire un nuovo prototipo di un oggetto è sufficiente definirne un costruttore, che non è altro che una funzione.
 
Ad esempio, volendo creare un oggetto "-macchinaMacchina", sarà sufficiente creare una funzione <code>Macchina()</code> e instanziarla poi in una variabile:
<source lang=javascript>
function Macchina() {
Riga 28:
<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>
Line 40 ⟶ 43:
== 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