JavaScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Rivisitazione completa
Oggetti e prototipi
Riga 10:
}}
== Premessa ==
JavaScript nasce come linguaggio di scripting lato-client orientato agli oggetti e agli eventi per aggiungere qualche funzionalità alle pagine web. Occorre subito distinguerlo da falsi-simili come il [[Java]] che ha natura e scopi totalmente differenti, o da altre tecnologie come il [[NodeJS]] che usano JavaScript ma elevandolo a linguaggio lato-server.
 
Questa lezione tratta perciò del linguaggio JavaScript interpretato lato-client, incluso in pagine [[HTML]].
Riga 72:
 
<source lang="javascript">
var a = "'ciao"';
console.log( a );
 
Riga 128:
}
 
var okWikiversity = doSomethingIncredible(truefalse);
 
console.log( okWikiversity );
</source>
''Output'': <code>true</code>
 
== Oggetti e prototipi ==
La programmazione orientata agli oggetti in JavaScript può risultare un po' complicata, questo perchè il concetto di [[w:Classe (informatica)|classe]] in JavaScript non esiste poichè è sostituito dal concetto di "prototipo". Un prototipo è una struttura che può cambiare nel tempo:
 
<source lang="javascript">
// Questo è il costruttore di un oggetto
function GamePlayer(name, surname) {
this.name = name;
this.surname = surname;
this.score = 0;
}
 
// Istanzio un nuovo oggetto col costruttore
var marioRossi = new GamePlayer('Mario', 'Rossi');
 
// Posso appendere un nuovo metodo in qualsiasi momento
GamePlayer.prototype.goal = function () {
this.score++;
};
 
marioRossi.goal();
marioRossi.goal();
marioRossi.goal();
 
if( marioRossi.score > 2 ) {
alert( marioRossi.name + ' ha più di due punti' );
} else {
alert( marioRossi.name + ' ha meno di due punti' );
}
</source>
 
In quest'altro esempio si modifica il prototipo di <code>String</code> per aggiungerci un metodo personalizzato:
<source lang="javascript">
String.prototype.sandwich = function (bread) {
return bread + this + bread;
}
 
console.log( 'Wikiversità'.sandwich('@@') );
</source>
 
''Output'': <code>@@Wikiversità@@</code>