<script> function oggetto(){ this.sinistra; this.alto; this.aumenta=function() { this.sinistra+=5; } } var questo = new oggetto(); questo.sinistra=12; questo.aumenta(); alert(questo.sinistra); </script>Non è poi difficile...
Ora manipolo l'oggetto questo mediante un metodo modifica() creato nel contesto del costruttore:
<script> function oggetto(){ this.variabile=2; this.modifica = function(){ this.variabile+=2; } } var questo = new oggetto(); questo.modifica(); alert(questo.variabile); </script>Bene. Il metodo modifica() ha aumentato di due il valore della proprietà variabile, e ottengo 4.
Ora però modifico la proprietà dall'esterno dopo averla modificata mediante il metodo interno modifica():
<script>
function oggetto(){
this.variabile=2;
this.modifica = function(){
this.variabile+=2;
}
}
var questo = new oggetto();
questo.modifica();
alert(questo.variabile);
questo.variabile=123;
alert(questo.variabile);
</script>
Ottengo 4 per effetto del metodo modifica() e poi 123 per effetto della modifica diretta dall'esterno della proprietà variabile.Ora voglio che si crei una variabile privata in modo da non dare accesso dall'esterno alla modifica delle proprietà dell'oggetto.
<script> function oggetto(){ var variabile=2; this.modifica = function(){ variabile+=2; } this.mostra=function(){ alert(variabile); } } var questo = new oggetto(); questo.modifica(); questo.mostra(); questo.variabile=123; questo.mostra(); </script>Con il metodo modifica() ho sommato 2 alla variabile e ho ottenuto 4
Con il metodo mostra() ho mostrato il valore della variabile.
Ho messo in opera un tentativo di modificare dall'esterno il valore della variabile
La ripetizione del metodo mostra() mostra sempre un valore di 4, segno che dall'esterno non ho potuto modificare la variabile.
Ma la variabile viene "ripetuta" per ogni istanza dell'oggetto? Non sarà sempre quella?
Ora creo due oggetti...
<script> function oggetto(){ var variabile=2; this.modifica = function(){ variabile+=2; } this.mostra=function(){ alert(variabile); } } var questo = new oggetto(); var quello = new oggetto(); questo.modifica(); quello.modifica(); quello.modifica(); questo.mostra(); quello.mostra(); </script>Ecco: ottengo 4 e 6. Questo significa che variabile è una variabile privata e diversa per ciascun oggetto!
Nessun commento:
Posta un commento