2013-06-15 5 views
7

sto creando un oggetto molto semplice in JavaScript e loop attraverso le sue proprietà, la visualizzazione di nome della proprietà:Iterazione attraverso proprietà degli oggetti produce risultati diversi nei vari browser

var name = { 
       'A': 'DataA', 
       'B': 'DataB', 
       'C': 'DataC', 
       'D': 'DataD', 
       'E': 'DataE' 
      } 

for (var propName in name) { 
    document.getElementById('result').innerHTML += propName + ' ' 
} 

in IE e Firefox produce Risultato atteso:

A B C D E 

Ma in Chrome stesso codice produce

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

Qualsiasi idea perché? La parola chiave name ha un qualche significato in Chrome?

+0

[Sei sicuro?] (Http://jsfiddle.net/cqvrF/) – zerkms

+0

JSFiddle per qualche motivo non mostra l'effetto, ma quando apro la pagina HTML con il codice direttamente nel browser - questo succede –

+3

Chrome non funziona sembra che piaccia quando lo usi come globale (c'è una proprietà name sull'oggetto window). Basta eseguirlo all'interno di una funzione. – zdyn

risposta

4

Chrome non sembra piace quando lo si utilizza come una variabile globale (c'è anche una proprietà di nome per l'oggetto finestra). Basta eseguirlo all'interno di una funzione.

-5

provare

for (var propName in name) { 
    document.getElementById('result').innerHTML += (propName + ' '); 
} 
+2

Cosa pensi che cambierebbe (per * codice * di lavoro)? Si prega di dare un'occhiata a https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence prima di eliminare la risposta :-) – zerkms

+0

Il fatto è che quando eseguo il debug della pagina 'propName 'non mostrare quei numeri –

+0

non ho intenzione di cancellare che, dal momento che fa la differenza –

Problemi correlati