Originariamente inviato da Calaf1966
A mio avviso il problema deriva dal fatto che nella funzione "cambia", di fatto stai cercando di definire una nuova array locale impostandola ad 1. Infatti per definire una variabile non è strettamente necessario usare la chiave "var".
Così facendo, nella funzione "salva()" visualizzi l'array globale che è però ancora impostata a zero.
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: