[javascript] Где все функции в IE? - PullRequest
1 голос
/ 20 мая 2010

Если я хочу использовать все функции и переменные, объявленные в моей программе в Firefox, я просто повторяю объект 'window' Например, если у меня есть var a = function () {}; я могу использовать (); или window.a (); в Firefox, но не в IE. У меня есть функция итерации объекта окна и записи всех имен функций, объявленных в программе, как это:

for (smthng in window) {
    document.write(smthng);
}

работает в FF, в IE есть кое-что, но я ничего не заявляю раньше. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 20 мая 2010

Это хорошо известная ошибка JScript.

В IE глобальные переменные не являются перечисляемыми , если вы явно не определите их как свойства объекта окна.

var a = function () {};     // It won't be enumerated in a `for...in` loop
window.b = function () {};  // It will be enumerated in a `for...in` loop

Два вышеупомянутых способа действительно похожи, единственное отличие состоит в том, что a объявляется с помощью оператора var, и это делает его недоступным для удаления, тогда как b может быть "deleted".

delete window.a; // false
delete window.b; // true
0 голосов
/ 20 мая 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...