Newsgroup: it.comp.lang.javascript
Titolo: Parola chiave NEW e visibilita' oggetti

Ciao, scusate se rompo, ma non riesco a capire perchč JS mi fa questo
scherzo...
Ho dichiarato una funzione cosě
function pippo(x1,x2,x3)
{
 this.x1 = x1;
 this.x2 = x2;
 this.x3 = x3;
}
poi in un'altra funzione richiamo, cercando di fare una assegnazione ad un
array
.......
NomeArray[ind] = new pippo(x1,x2,x3)
.......
ma mi appare il messaggio
" x1 non e' definito". Perchč?
con il new, non ho dichiarato che il mio vettore assume la striuttura di
pippo?
pippo e' globale, come mai non viene riconosciuta?
Lo stesso errore, mi si ripresenta se io vado in lettura, sempre da un'altra
funzione del contenuto del vattore?
Se mi potete aiutare ...Grazie
Emanuele

 ha scritto nel messaggio
news:ElVF5.9933$Nz.2...@news.infostrada.it...


 " x1 non e' definito". Perchè?
Perchè non è dichiarato come variabile globale ......
Le variabili globali, riconosiute in tutto lo script devono essere
dichiarate esternamente al corpo della funzione , altrimenti di variabile
locale si tratta, riconosciuta solo all'interno della funzione.......
____________________
andreotta fabiano
WebMªster ATI POWER s.n.c.
andr...@atipower.it
http://www.atipower.it
http://www.afdsoftware.freeweb.org
____________________
http://www.jsdir.com
____________________
*¢ L'unica certezza nella vita è che tutto è relativo (per fortuna)¢*

 locale si tratta, riconosciuta solo all'interno della funzione.......
A voler essere precisi, c'e' un'eccezione in cui *non* dichiarando una
variabile esternamente al corpo della funzione, e' cmq globale.
function myFun(){
    var z="pippo";
}
Cosi' e' locale, ma cosi':
function myFun(){
    z="pippo"
}
Diventa globale.

 wrote in message
8secg7$3vv$1...@fe1.cs.interbusiness.it...

Forse non ho capito io il significato di globale a questo punto , perchè
correggimi se sbaglio , una variabile globale è valida per tutto lo script
all'interno e all'esterno delle funzioni.........ma se fai...
<script language="javascript">
function myFun(){
z='pippo'
}
myFun2();
function myFun2(){
alert(z)
}
</script>
'z' risulta non definito perchè  è una variabile locale.....


 'z' risulta non definito perchè  è una variabile locale.....
No, nel caso che hai appena esposto, "z" e' una variabile *globale*.
Ti risulta "non definito" perche' myFun non viene mai invocata,
ovviamente... Ed e' all'interno di quella funzione che tu la dichiari
globalmente.
Prova a far girare questi due script, e capirai meglio la differenza tra
globale e locale, e cio' che io intendevo:
/* Script con variabile "z" locale */
<script language="javascript">
    function myFun(){
        var z='pippo'
    }
    myFun();
    myFun2();
    function myFun2(){
        alert(z)
    }
</script>
/* Script con variabile "z" globale dichiarata in una function */
<script language="javascript">
    function myFun(){
        z='pippo'
    }
    myFun(); /* Avevi omesso questa riga, per quello, ovviamente, non ti
funzionava */



capito!!
Ciao!


 Ciao!
P.S.
Io aspettavo ancora una tua mail.. Hai deciso di troncare la nostra
corrispondenza? ;__;




 locali definite solo all'interno della funzione stessa
Il suo era un errore di natura differente (stava lavorando ad oggetti,
inoltre).
Per chiarirti un po' le idee su variabili locali e globali leggiti i
post/repost tra me e atipower di questo stesso thread.

Scusa pippopod, non mi sono spiegato....
lo so che la function articoli è diversa da articoli[] e che la cosa che
anno in cumune e solo il nome, ma mi domandavo nel codice
var ArrayArtOk = new Array();
function articoli(desc,prezzo){
 this.desc=desc;
 this.prezzo=prezzo;
}
articoli['001']= new articoli("mulinello tamburo","75.000");
articoli['002']= new articoli("roubaisienne","1.000.000");
articoli['003']= new articoli("galleggiante","5.000");
dichiari solo l'Array ArrayArtOk e non l'array articoli...
come fai a utilizzarlo se non lo crei?
La creazione avviene automaticamente?
Anche perche' tu oltre a non definirlo, non inizializzi la suz lunghezza ne
usi
articoli[0] =................
ma bensi
articoli['001']
che a me sembra una stringa ... e quindi non a quale elemento si deve
assegnare il valore successivo.......
Grazie
Emanuele

La risposta sul thread Re: Array e mantenimento dati.
Saluti, Paolo
[]