2012-10-30 15 views
5

Powiel możliwe:
Why does IE nuke window.ABC variables?zmienna globalna dziwactwa w 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> 

w IE8, wynik jest

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

Drugi script wydaje się zastępować q z window.

Jeśli zmienię kod na window.q = {test: "test"}; pierwszego script na q={test:"test"}, wynik będzie taki sam, jak w innych przeglądarkach.

Czy to błąd w IE?

+0

Wydaje się to zdarzyć tylko w IE 8. IE 9+ działać prawidłowo. –

Odpowiedz