(создание отдельного вопроса после комментариев к этому: Переопределенная Javascript глобальная переменная переопределяет старое значение )
Я создаю глобально переменную в области видимости, используя обозначение в квадратных скобках, и присваиваю ей значение во внешнем js-файле.
В другом js-файле я объявляю переменную с тем же именем, которое я только что создал выше. Обратите внимание, я не назначаю значение. Поскольку это переопределение той же переменной, старое значение не должно быть переопределено, как описано здесь: http://www.w3schools.com/js/js_variables.asp
Создайте 2 файла javascript со следующим содержанием:
Script1
//create global variable with square bracket notation
window['y'] = 'old';
Скрипт2
//redeclaration of the same variable
var y;
if (!y) y = 'new';
alert(y); //shows New instead of Old in IE
Включите эти 2 файла в ваш HTML-файл
<html>
<head></head>
<body>
<script type="text/javascript" src="my.js"></script>
<script type="text/javascript" src="my2.js"></script>
</body>
</html>
Открытие этой страницы в Firefox и Chrome предупреждает «старый», что является ожидаемым поведением. Однако в IE 8 страница на самом деле будет предупреждать «новый»
Есть идеи, почему это происходит в IE?