Originariamente inviato da fcaldera
questo non è corretto.
Se uso una variabile dentro una funzione, ma definita a livello di scope globale, non sto creando una nuova variabile, sto usando quella globale.

Infatti questo codice non ha nessun problema

codice:
  <script type="text/javascript">
        // <![CDATA[
        
        var prova=new Array();

        prova['a'] = 0;
        prova['b'] = 0;
        prova['c'] = 0;
        prova['d'] = 0;
        prova['e'] = 0;


        function salva() {
            alert(prova['a']);
        }
        
        function cambia() {
            prova['a'] = 1;
        }
        
        salva(); // restituisce 0
        cambia();
        salva(); // restituisce 1
        
        // ]]>
        </script>
non capisco quale sia l'anomalia di questo codice... :master:
anche secondo me il codice nn dovrebbe aver problemi... l'unica cosa su cui nn sono convinto e' che magari usando stringhe (che sono oggetti) come chiavi dell'array quando va a lanciar il cambia potrebbe creare un NUOVO oggetto stringa (contenente la stessa cosa) e quindi magari ci sono 2 indici che si chiamano 'a' nell'array uno impostato a 0 e l'altro a 1... io cmq consiglio di usar sempre i numeri che almeno sei sicuro