Cominciamo dal Javascript...
Scrivo questo:
<script> function funzione(){ var variabile=0; } document.write(funzione.variabile); </script>Output:
undefined
Dal di fuori non posso vedere una variabile dichiarata con var all'interno di una funzione.
Scrivo questo:
<script> function funzione(){ var variabile=0; } var miaFunzione=new funzione(); document.write(miaFunzione.variabile); </script>Ottengo sempre:
undefinedho creato una nuova istanza di funzione ma anche per questa istanza non posso accedere alla variabile dichiarata con var all'interno della funzione.
Se scrivo così:
<script> function funzione(){ var variabile=0; var dichiara=function(){ document.write(variabile); } } funzione.dichiara(); </script>
o così:
<script> function funzione(){ var variabile=0; var dichiara=function(){ document.write(variabile); } } var miaFunzione=new funzione(); miaFunzione.dichiara(); </script>Output:
...tentando di accedere dall'esterno a un metodo dichiarato con var all'interno della funzione o di una sua istanza, non ottengo niente, in quanto non si può accedere dall'esterno a un metodo privato di una funzione o di una sua istanza.
Queste le premesse prime.
Ora introduciamo il this.
<script> function funzione(){ this.variabile=0; } document.write(funzione.variabile); </script>ottengo:
undefined
Se scrivo questo:
<script> function funzione(){ this.variabile=0; } var miaFunzione=new funzione(); document.write(miaFunzione.variabile); </script>ottengo:
0Il this non è dunque un modo per rendere pubblici i membri di una funzione.
Proviamo con un metodo:
<script> function funzione(){ this.variabile=0; this.dichiara=function(){ document.write(this.variabile); } } funzione.dichiara(); </script>Ora creo l'istanza:
<script> function funzione(){ this.variabile=0; this.dichiara=function(){ document.write(this.variabile); } } miaFunzione=new funzione(); miaFunzione.dichiara(); </script>E ottengo:
0
No, il this non è un modo per rendere pubblici i membri di una funzione...
Nessun commento:
Posta un commento