2012-10-30 20 views
5

Eventuali duplicati:
Why does IE nuke window.ABC variables?stranezze globali variabili in IE

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8" /> 
</head> 
<body> 
    <script> 
     if(typeof q === "undefined"){ 
      window.q = {test: "test"}; 
     } 
     alert("1="+q) 
    </script> 
    <script> 
     alert("2="+q) 
     if(typeof q === "undefined"){ 
      var q = {}; 
     } 
     alert("3="+q.test) 
    </script> 
    <script> 
     alert("4="+q.test) 
    </script> 
</body> 

in IE8, il risultato è

1=[object Object] 
2=undefined 
3=undefined 
4=undefined 

Il secondo script sembra ignorare lo q di window.

Se cambio il codice in window.q = {test: "test"}; del primo script in q={test:"test"}, il risultato sarà lo stesso degli altri browser.

Si tratta di un bug in IE?

+0

Questo sembra accadere solo in IE 8. IE 9+ funzionano bene. –

risposta