Интересно, почему одна и та же сущность по-разному представлена внутри объекта window браузера, вызываемого в консоли:
window внутри консоли браузера, у нас будет вся информация о браузере. Где document будет представлен как объектная сущность, включающая различные свойства и функции (включая DOM).document напрямую с помощью команды window.document, у нас будет только его DOM-представление.Итак, почему это происходит? Я действительно не могу понять.
Спасибо.
Нет, это совсем другой вопрос. @devlincarnate
@devlincarnate, это другой вопрос. Удалите отметку о дублировании в моем посте! Я не спрашиваю о размерах DOM, вместо этого меня интересуют различия в документе и window.document!
Я не знаю правильного ответа, но полагаю, что это всего лишь вопрос интерпретации. Разработчики Chrome просто предположили, что в консоли, когда вы вводите document, вы хотите увидеть DOM, тогда как если вам нужна вся информация, вы просто набираете window.document.
@ OliverTušla, ха-ха, просто введите то, что вы написали выше - window.document, и вы удивитесь тому, что вы увидите в консоли .... Вы не правы
Извините, это означало набрать window и увидеть свойство собственными глазами.
Есть этот (точный) дубликат javascript window.document в консоли (который не имеет принятого или одобренного ответа и, следовательно, недоступен в качестве цели для дублирования). Он закрыт как обман В чем разница между console.dir и console.info?, который использует window.document в одном из своих ответов в качестве демонстрации.
если ваше приложение открывает новое окно. например childWindow = window.open (// некоторые параметры); у вас есть window.document и childWindow.document



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Именно так работают инструменты разработчика Chrome. У них есть несколько различных форматов вывода информации на консоль. Узлы Dom, которые представляют собой тип объекта, получили свою собственную причудливую реализацию, поскольку они очень часто встречаются в веб-разработке. Итак, когда вы делаете window.document, он выбирает именно этот формат для вывода.
Для других типов объектов они выводят его в другом формате, и это то, что он делает, когда вы делаете window. Это правда, что вы можете развернуть это, чтобы перейти к window.document, но инструменты разработчика продолжают отображать его в том же формате, а не пытаться вложить один формат в другой.
console.dir(window.document) вместо console.info()@Andreas Я не думаю, что он делает что-то из этого, он просто набирает document и window.document прямо в консоли.
прямо из моего хромового отладчика:
>window.document === document
true
Documentantion передает, что window.document - это просто ссылка на документ.
Однако, даже если они ссылаются на один и тот же документ, документ может содержать специальные геттеры и сеттеры, которые перекрывают те из window.document ...
Геттеры и сеттеры не могут сказать, какое выражение использовалось для доступа к ним.
Да, но геттеры и сеттеры Windows запускаются раньше, чем получатели и сеттеры документов, и они потенциально могут их переопределить. Если хотите, я могу привести вам пример.
Я понимаю, о чем вы говорите. Запись только document не дает доступа к нему через объект Window, поэтому он не использует геттер / сеттер.
Да, безусловно, это просто то, что происходит с мог, и это может объяснить разницу в выводе. Я понятия не имею, есть ли это. (вероятно, нет)
Возможный дубликат В чем разница между окном, экраном и документом в Javascript?