Сотрудник показал мне следующий код и спросил, почему он работает.
<span id="myspan">Do you like my hat?</span>
<script type="text/javascript">
var spanElement = document.getElementById("myspan");
alert("Here I am! " + spanElement.innerHTML + "\n" + myspan.innerHTML);
</script>
Я объяснил, что свойство объекта присоединяется к объекту окна с именем идентификатора элемента, когда браузер анализирует документ, который затем содержит ссылку на соответствующий узел dom. Это как будто window.myspan = document.getElementById("myspan")
вызывается за кулисами при визуализации страницы.
В ходе последующего обсуждения мы подняли несколько вопросов:
Объект window и большая часть DOM не являются частью официальных стандартов JavaScript / ECMA, но описанное выше поведение задокументировано в любой другой официальной литературе, возможно, связанной с браузером?
Вышесказанное работает в браузере (по крайней мере, основные претенденты), потому что есть объект окна, но терпит неудачу в чем-то вроде носорога. Написание кода, основанного на этом, считается плохой практикой, поскольку в нем слишком много предположений относительно среды выполнения?
Существуют ли какие-либо браузеры, в которых вышеперечисленное не работает, или это считается стандартным поведением по всем направлениям?
Кто-нибудь здесь знает ответы на эти вопросы и хотел бы просветить меня? Я пробовал быстрый поиск в интернете, но признаюсь, что не уверен, как правильно сформулировать запрос. Указатели на ссылки и документацию приветствуются.