(создавая отдельный вопрос после комментариев по этому поводу: глобальная переменная с переопределением Javascript переопределяет старое значение)
Я создаю переменную с глобальным охватом, используя нотацию квадратной скобки и присваивая ей значение внутри внешнего js файла.
В другом js файле я объявляю var с тем же именем, что и тот, который я только что создал. Примечание. Я не назначаю значение. Поскольку это переопределение одной и той же переменной, старое значение не должно переоцениваться, как описано здесь: 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?