С каких пор и почему имена идентификаторов доменов автоматически определяются как объекты в js api

Я был сбит с толку этим, имена идентификаторов dom определяются как объекты dom в js по умолчанию. Я сходил с ума из-за переменной, которую, как я думал, я определил, но на самом деле это не так, и она возвращала объект из-за того же имени идентификатора.

Мне не удалось получить какие-либо документы об этом. Все браузеры, кажется, делают это. Есть ли для этого причина?

имя идентификатора, определенное как объект dom по умолчанию


person eringen    schedule 12.10.2016    source источник
comment
Поскольку Internet Explorer добавил поддержку JavaScript в 1990-х годах.   -  person Pointy    schedule 12.10.2016
comment
С тех пор навсегда в Internet Explorer. Начиная с HTML5 для других браузеров. Это поведение теперь стандартизировано и неизбежно.   -  person Frédéric Hamidi    schedule 12.10.2016
comment
Я не думаю, что это было так со времен IE, я ясно помню цену забывания getElementById(), и я всегда использовал одно и то же имя переменной с именем идентификатора. Даже я ошибаюсь, должна быть какая-то документация об этом поведении. Или люди должны говорить, что для получения ElementById просто используйте имя идентификатора!   -  person eringen    schedule 12.10.2016
comment
@eringen Нет, вам не следует этого делать, см. Почему бы нам просто не использовать идентификаторы элементов в качестве идентификаторов в JavaScript?   -  person Bergi    schedule 12.10.2016
comment
@Bergi Я полностью согласен и разделяю точно такие же мысли, меня беспокоит то, как я пропустил это до сих пор, и почему нет документации об этом bs.   -  person eringen    schedule 12.10.2016
comment
прокачивать глобальные переменные через API просто глупо. в любом случае.   -  person eringen    schedule 12.10.2016
comment
Да, это глупо, но это то, что Microsoft сделала в первые дни, а затем другие браузеры должны были поддерживать эту функцию, чтобы быть совместимыми.   -  person Bergi    schedule 12.10.2016
comment
@eringen: у IE была эта функция с момента первого общедоступного выпуска с поддержкой Javascript (IE3) в 1996 году. Так что да, у IE она была фактически навсегда. Забывание getElementById приводило к тому, что ваша страница ломалась в Netscape. Это одна из причин существования корпоративных веб-порталов только для IE, потому что разработчики IE обычно используют такие ярлыки, но их веб-страницы не будут работать в других браузерах.   -  person slebetman    schedule 12.10.2016