Il metodo scrivi appartiene a questo oggetto.
Agisce da dentro questo oggetto.
Ora gli faccio leggere delle variabili pubbliche dell'oggetto e poi delle variabili private.
Variabili pubbliche:
<script> function oggetto(nome, cognome){ this.nome=nome; this.cognome=cognome; this.scrivi = function(){ alert(nome+" "+cognome); } } function azione(){ Mario=new oggetto("Mario", "Rossi"); Mario.scrivi(); } </script> <body onLoad="azione();"> </body>Ho stabilito la convenzione di marcare le variabili pubbliche in verde.
L'output è una casella di avviso con scritto "Mario Rossi".
Conclusione: il metodo legge le variabili pubbliche dello stesso oggetto(è lapalissiano).
Ora leggo le variabili pubbliche da una funzione esterna all'oggetto:
<script> function oggetto(nome, cognome){ this.nome=nome; this.cognome=cognome; this.scrivi = function(){ alert(nome+" "+cognome); } } function azione(){ Mario=new oggetto("Mario", "Rossi"); alert(Mario.nome+" "+Mario.cognome); } </script> <body onLoad="azione();"> </body>Output: "Mario Rossi".
Conclusione: la funzione esterna legge le variabili pubbliche di un oggetto.
Ora ripeto l'esperimento con variabili private (che per convenzione segno in rosso)
<script> function oggetto(nome, cognome){ var nome=nome; var cognome=cognome; this.scrivi = function(){ alert(nome+" "+cognome); } } function azione(){ Mario=new oggetto("Mario", "Rossi"); Mario.scrivi(); } </script> <body onLoad="azione();"> </body>Output: "Mario Rossi".
Conclusione: il metodo legge le variabili private dello stesso oggetto..
Ora cerco di leggere le variabili private da una funzione esterna:
<script> function oggetto(nome, cognome){ var nome=nome; var cognome=cognome; this.scrivi = function(){ alert(nome+" "+cognome); } } function azione(){ Mario=new oggetto("Mario", "Rossi"); alert(Mario.nome+" "+Mario.cognome); } </script> <body onLoad="azione();"> </body>Output: "undefined undefined". Conclusione: la funzione esterna non legge le variabili private di un oggetto.
Tutto lapalissiano, del resto, ma è bene allenarsi!
Nessun commento:
Posta un commento