JavaScript/Costruttori e prototipi: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Etichette: Modifica da mobile Modifica da web per mobile
m Update syntaxhighlight tags - remove use of deprecated <source> tags
 
Riga 6:
 
Ad esempio, volendo creare un oggetto "Macchina", sarà sufficiente creare una funzione <code>Macchina()</code> e instanziarla poi in una variabile:
<sourcesyntaxhighlight lang=javascript>
function Macchina() {
//...
Riga 12:
 
var macchina = new Macchina(); //notare in questo caso la distinzione tra maiuscolo e minuscolo
</syntaxhighlight>
</source>
Per fare riferimento alle proprietà dell'oggetto, all'interno della funzione usiamo la parola chiave <code>this</code>:
<sourcesyntaxhighlight lang=javascript>
function Macchina(mod) { //passiamo qualche parametro al costruttore...
this.modello = mod;
Riga 23:
macchina.modello = "Fiat 500";
alert(macchina.modello);
</syntaxhighlight>
</source>
 
Per creare un metodo inseriamo invece una funzione all'interno del costruttore:
<sourcesyntaxhighlight lang=javascript>
function Macchina(mod) { //passiamo qualche parametro al costruttore...
 
Riga 38:
 
}
</syntaxhighlight>
</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 permette un'organizzazione dei dati chiara ed efficiente.
 
Riga 45:
 
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:
<sourcesyntaxhighlight lang=javascript>
Array.prototype.contains = function (element) {
for(i in this) { //scorre tutti gli elementi
Riga 63:
//...
}
</syntaxhighlight>
</source>
 
==I costruttori in es6 e successivi==
Es6 mette a disposizione un nuovo sistema per creare oggetti: attraverso le classi. Le classi non sono altro che costruttori, ma queste semplificano notevolmente la leggibilità del codice e la creazione di metodi.
Ecco un semplice esempio, in cui definiamo l'oggetto auto:
<sourcesyntaxhighlight lang=javascript>
class auto {
constructor (modello, marca, targa) {
Riga 77:
console.log (this.modello); }
}
</syntaxhighlight>
</source>
[[Categoria:JavaScript|Costruttori e prototipi]]
{{Avanzamento|100%|23 marzo 2008}}