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