Document | JavaScript справочник
Интерфейсы веб APIОписание интерфейса
Интерфейс документа представляет собой любую веб-страницу, загруженную в браузер и служит точкой входа в содержимое веб-страницы, которое является деревом DOM. Интерфейс Document предоставляет функции глобально для документа, описывает общие свойства и методы для любого вида документа.
Методы интерфейса Document
Метод | Описание | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|---|
adoptNode() | Метод позволяет принять узел из любого документа, частью которого он являлся на момент вызова, и записывает в свойство Node.ownerDocument ссылку на текущий документ, подготавливая его к добавлению в текущий документ. | Да | Да | Да | Да | 9.![]() | Да |
close() | Метод завершает запись в документ (закрывает поток открытый с помощью метода open() объекта Document) | Да | Да | Да | Да | Да | Да |
createAttribute() | Метод создает новый атрибут с указанным именем (объект Attr) и возвращает его. | Да | Да | Да | Да | Да | Да |
createCDATASection() | Создает узел CDATASection и возвращает его (только для XML документов). | Да | Да | Да | Да | Да | Да |
createComment() | Позволяет создать новый узел комментария и возвратить его. | Да | Да | Да | Да | Да | Да |
createDocumentFragment() | Позволяет создать новый пустой объект DocumentFragment, предназначенный для создания фрагмента документа, в который впоследствии допускается добавить новые элементы и узлы, а затем присоединить этот фрагмент к основному дереву DOM.![]() |
Да | Да | Да | Да | Да | Да |
createElement() | Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега. | Да | Да | Да | Да | Да | Да |
createElementNS() | Метод позволяет создать и вернуть новый элемент (пустой узел Element) с указанным именем тега с указанным URI пространства имен. | Да | Да | Да | Да | Да | Да |
createEvent() | Метод создает событие указанного типа. | Да | Да | Да | Да | 9.0 | Да |
createNodeIterator() | Возвращает новый объект NodeIterator. | Да | Да | Да | Да | 9.0 | Да |
createTextNode() | Метод позволяет создать и вернуть текстовый узел с указанным текстом.![]() |
Да | Да | Да | Да | Да | Да |
getElementById() | Метод возвращает объект Element, представляющий из себя элемент, глобальный атрибут id которого соответствует указанной строке. | Да | Да | Да | Да | Да | Да |
getElementsByClassName() | Возвращает массивоподобный (итерируемый) объект всех дочерних элементов, которые соответствуют указанному имени классу, или классам. | Да | Да | Да | Да | Да | Да |
getElementsByName() | Метод возвращает коллекцию всех элементов документа с указанным именем (значением атрибута name) в виде объекта NodeList. | Да | Да | Да | Да | Да | Да |
getElementsByTagName() | Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта HTMLCollection.![]() | Да | Да | Да | Да | Да | Да |
getElementsByTagNameNS() | Метод возвращает коллекцию всех элементов документа с указанным именем тега в виде объекта NodeList, принадлежащих определенному пространству имен | Да | Да | Да | Да | Да | Да |
hasFocus() | Метод возвращает логическое значение, которое указывает на то, имеет ли документ, или любой элемент внутри документа фокус. | Да | Да | Да | Да | Да | Да |
importNode() | Метод создает новую копию указанного узла (объект Node) или фрагмента (объект DocumentFragment) из другого документа для возможности вставки в текущий документ. | Да | Да | Да | Да | 9.0* | Да |
open() | Метод позволяет открыть поток для записи документа (данные могут быть переданы с помощью методов write() или writeln() объекта Document).![]() | Да | Да | Да | Да | Да | Да |
querySelector() | Метод возвращает первый элемент в документе (объект Element), соответствующий указанному селектору, или группе селекторов. | Да | Да | Да | Да | 8.0* | Да |
querySelectorAll() | Метод возвращает список элементов в пределах документа (статичный (не живой) объект типа NodeList), соответствующих указанному селектору, или группе селекторов. | Да | Да | Да | Да | 8.0* | Да |
write() | Записывает в поток документа строку текста. | Да | Да | Да | Да | Да | Да |
writeln() | Записывает в поток документа строку текста за которой следует символ новой строки.![]() |
Да | Да | Да | Да | Да | Да |
Свойства интерфейса Document
Свойство | Описание | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|---|
body | Представляет ссылку на узел <body> или <frameset> текущего документа, или null, если такой элемент не существует. Элемент <frameset> не поддерживается в HTML 5. | Да | Да | Да | Да | Да | Да |
characterSet | Возвращает кодировку для текущего документа. Свойство доступно только для чтения. | 45.0 | 44.0 | 34.0 | 9.0 | 9.0 | Да |
cookie | Получает или задает cookie (небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя), связанных с текущим документом.![]() |
Да | Да | Да | Да | Да | Да |
defaultView | Возвращает ссылку на объект Window, связанный с документом, или null, если он недоступен. | Да | Да | Да | Да | 9.0 | Да |
designMode | Управляет возможностью редактирования всего документа. | Да | Да | Да | Да | Да | Да |
dir | Возвращает, или задает направление текста документа (слева направо (по умолчанию) или справа налево). | Да | Да | Да | Да | Да | Да |
doctype | Возвращает объявление (декларацию) типа документа (Document Type Declaration), связанное с текущим документом. | Да | Да | Да | Да | Да | Да |
documentElement | Возвращает элемент (объект Element), являющийся корневым элементом документа (например, элемент <html> для документов типа HTML).![]() |
Да | Да | Да | Да | Да | Да |
documentURI | Возвращает в виде строки текущий адрес документа. | Да | Да | Да | Да | Да | Да |
DocumentOrShadowRoot. activeElement | Возвращает элемент в дереве DOM, или shadowDOM, который в данный момент имеет фокус | 53.0 | Да | 40.0 | Да | Да | Да |
DocumentOrShadowRoot. fullscreenElement | Свойство доступное только для чтения возвращает элемент, который в настоящее время представлен в полноэкранном режиме в этом документе, или значение null, если полноэкранный режим в настоящее время не используется. | 53.0 -webkit- | 64.0 | 40.0 -webkit- | Да -webkit- | Да -webkit- | Да -webkit- |
DocumentOrShadowRoot. pointerLockElement | Предоставляет набор элементов в качестве целевого объекта для событий мыши, когда указатель заблокирован.![]() |
53.0 | Да | 40.0 | Да | Да | Да |
DocumentOrShadowRoot. styleSheets | Возвращает коллекцию StyleSheetList, содержащую объекты CSSStyleSheet, описывающих стили явно связанных или внедренных в текущем документе. | 53.0 | Да | 40.0 | Да | Да | Да |
domain | Возвращает, или задает доменную часть источника текущего документа, используемую той же политикой источника. | Да | Да | Да | Да | Да | Да |
embeds | Возвращает список элементов внедренных с использованием HTML элемента <embed>, содержащихся в текущем документе. | Да | Да | Да | Да | Да | Да |
fonts | Возвращает объект FontFaceSet, который управляет загрузкой шрифтов и запросом их статуса загрузки для текущего документа. | 60.![]() | 41.0 | 47.0 | 10.0 | Нет | Нет |
forms | Возвращает коллекцию HTMLCollection со списком всех элементов <form>, содержащихся в текущем документе. | Да | Да | Да | Да | Да | Да |
head | Возвращает элемент <head>, содержащийся в текущем документе. | Да | Да | Да | Да | 9.0 | Да |
hidden | Возвращает логическое значение, которое указывает на то, считается ли страница скрытой, или нет. | 33.0 | 18.0 | 12.1 | 7.0 | 10.0 | Да |
images | Возвращает коллекцию изображений в текущем HTML документе. | Да | Да | Да | Да | Да | Да |
implementation | Возвращает объект DOMImplementation, связанный с текущим документом. Этот объект определяет методы, не относящиеся к какому-либо конкретному объекту Document, а являющиеся глобальными для реализации DOM.![]() |
Да | Да | Да | Да | Да | Да |
lastModified | Возвращает строку, содержащую дату и время последнего изменения текущего документа. | Да | Да | Да | Да | Да | Да |
links | Возвращает коллекцию всех элементов <area> и <a> со значением атрибута href, содержащихся в текущем документе. | Да | Да | Да | Да | Да | Да |
location | Возвращает объект Location, который содержит сведения об URL адресе документа и предоставляет методы для изменения этого URL адреса, и загрузки другого URL адреса. | Да | Да | Да | Да | Да | Да |
plugins | Возвращает коллекцию HTMLCollection, содержащую один, или несколько элементов <embed> в текущем документе, или null, если в документе нет вложений.![]() |
Да | Да | Да | Да | Да | Да |
scripts | Возвращает коллекцию HTMLCollection всех элементов <script>, содержащихся в текущем документе. | Да | Да | Да | Да | Да | Да |
scrollingElement | Возвращает ссылку на элемент (объект Element), прокручивающий текущий документ. | 44.0 | 48.0 | 31.0 | 9.0 | Нет | Да |
visibilityState | Возвращает строковое значение определяющее видимость документа (находится ли документ в фоновом режиме, или на невидимой вкладке, или загружается только для предварительной отрисовки). | 33.0 | 18.0 | 12.1 | 7.0 | 10.0 | Да |
ParentNode.childElementCount | Возвращает количество дочерних элементов конкретного узла. | Да | Да | Да | Да | 9.![]() | Да |
ParentNode.children | Возвращает живую коллекцию (HTMLCollection), которая содержит все дочерние элементы узла, на котором он был вызван. | Да | Да | Да | Да | 9.0* | Да |
ParentNode.firstElementChild | Возвращает первый дочерний элемент (объект Element) конкретного узла, или null, если дочерних элементов нет. | Да | Да | Да | Да | 9.0 | Да |
ParentNode.lastElementChild | Возвращает последний дочерний элемент (объект Element) конкретного узла, или null, если дочерних элементов нет. | Да | Да | Да | Да | 9.0 | Да |
readyState | Описывает состояние загрузки документа. | Да | Да | Да | Да | 9.0 | Да |
referrer | Возвращает URI страницы, с которой был осуществлен переход на текущую страницу.![]() |
Да | Да | Да | Да | Да | Да |
title | Получает или задает текущее название документа (содержимое элемента <title>). | Да | Да | Да | Да | Да | Да |
URL | Возвращает расположение документа в виде строки. | Да | Да | Да | Да | Да | Да |
JS JavaScript HTML DOM Document
HTML5CSS.ru
ЛУЧШИЙ САЙТ ДЛЯ РАЗРАБОТЧИКОВ
❮ Назад Дальше ❯
Объект документа HTML DOM является владельцем всех других объектов на веб-странице.
Объект документа HTML DOM
Объект Document представляет веб-страницу.
Если вы хотите получить доступ к любому элементу на HTML-странице, вы всегда начинаете с доступа к объекту document.
Ниже приведены примеры того, как можно использовать объект Document для доступа к HTML и манипулирования им.
Поиск элементов HTML
Метод | Описание |
---|---|
document.getElementById(id) | Поиск элемента по идентификатору элемента |
document.getElementsByTagName(name) | Поиск элементов по имени тега |
document.getElementsByClassName(name) | Поиск элементов по имени класса |
Изменение элементов HTML
Метод | Описание |
---|---|
element.innerHTML = new html content | Изменение внутреннего HTML-кода элемента |
element.attribute = new value | Изменение значения атрибута элемента HTML |
element.setAttribute(attribute, value) | Изменение значения атрибута элемента HTML |
element.style.property = new style | Изменение стиля элемента HTML |
Добавление и удаление элементов
Метод | Описание |
---|---|
document.![]() | Создание элемента HTML |
document.removeChild(element) | Удаление элемента HTML |
document.appendChild(element) | Добавление элемента HTML |
document.replaceChild(element) | Замена элемента HTML |
document.write(text) | Запись в выходной поток HTML |
Добавление обработчиков событий
Метод | Описание |
---|---|
document.getElementById(id).onclick = function(){code} | Добавление кода обработчика событий в событие OnClick |
Поиск объектов HTML
Первый уровень HTML DOM 1 (1998), определенные 11 объектов HTML, коллекции объектов и свойства. Они по-прежнему действительны в HTML5.
Позже, в HTML DOM Level 3, добавлено больше объектов, коллекций и свойств.
Свойство | Описание | Dom |
---|---|---|
document.![]() | Возвращает все элементы <a>, имеющие атрибут Name | 1 |
document.applets | Возвращает все элементы <апплета> (устаревшие в HTML5) | 1 |
document.baseURI | Возвращает абсолютный базовый универсальный код ресурса (URI) документа | 3 |
document.body | Возвращает элемент <BODY> | 1 |
document.cookie | Возвращает файл cookie документа | 1 |
document.doctype | Возвращает документ документа | 3 |
document.documentElement | Возвращает элемент <HTML> | 3 |
document.documentMode | Возвращает режим, используемый обозревателем | 3 |
document.documentURI | Возвращает универсальный код ресурса (URI) документа | 3 |
document.domain | Возвращает имя домена сервера документов | 1 |
document.![]() | Устарели. Возвращает конфигурацию DOM | 3 |
document.embeds | Возвращает все элементы <embed> | 3 |
document.forms | Возвращает все элементы <form> | 1 |
document.head | Возвращает элемент <head> | 3 |
document.images | Возвращает все элементы <img> | 1 |
document.implementation | Возвращает реализацию модели DOM | 3 |
document.inputEncoding | Возвращает кодировку документа (набор символов) | 3 |
document.lastModified | Возвращает дату и время обновления документа | 3 |
document.links | Возвращает все элементы <Area> и <a>, имеющие атрибут href | 1 |
document.readyState | Возвращает состояние (Загрузка) документа | 3 |
document.referrer | Возвращает универсальный код ресурса (URI) ссылающегося (связывающего документа) | 1 |
document.![]() | Возвращает все элементы <script> | 3 |
document.strictErrorChecking | Возвращает при принудительной проверке ошибок | 3 |
document.title | Возвращает элемент <Title> | 1 |
document.URL | Возвращает полный URL-адрес документа | 1 |
❮ Назад Дальше ❯
PHP\CSS\JS\HMTL Editor
Copyright 2018-2020 HTML5CSS.ru
Правила и Условия Политика конфиденциальности О нас Контакты
Объектная модель документа (DOM)— веб-API
Объектная модель документа ( DOM ) соединяет веб-страницы со сценариями или языками программирования, представляя структуру документа, например HTML, представляющий веб-страницу, в памяти. . Обычно это относится к JavaScript, хотя моделирование документов HTML, SVG или XML как объектов не является частью основного языка JavaScript.
DOM представляет собой документ с логическим деревом. Каждая ветвь дерева заканчивается узлом, и каждый узел содержит объекты. Методы DOM обеспечивают программный доступ к дереву. С их помощью вы можете изменить структуру, стиль или содержание документа.
Узлы также могут иметь прикрепленные к ним обработчики событий. Как только событие инициируется, обработчики событий запускаются.
Чтобы узнать больше о том, что такое модель DOM и как она представляет документы, см. нашу статью Введение в модель DOM.
-
Атрибут
-
CDATAРаздел
-
Символьные данные
-
Комментарий
-
Пользовательское событие
-
Документ
-
Фрагмент документа
-
Тип документа
-
DOMError
Устаревший -
DOMException
-
Реализация ДОМИ
-
DOMStringList
-
DOMTokenList
-
Элемент
-
Событие
-
Цель события
-
HTMLКоллекция
-
Обозреватель мутаций
-
Запись Мутации
-
NamedNodeMap
-
Узел
-
фильтр узлов
-
Итератор узлов
-
Список узлов
-
Инструкция по обработке
-
Диапазон
-
Текст
-
TextDecoder
Expect behavior to change in the future.»> Экспериментальный -
TextEncoder
Экспериментальный -
Диапазоны времени
-
Триволкер
-
URL-адрес
-
Окно
-
Рабочий
-
XML-документ
Экспериментальный
Устаревшие интерфейсы DOM
Объектная модель документа сильно упрощена. Для этого были удалены следующие интерфейсы, представленные в различных спецификациях DOM уровня 3 или более ранних. Неясно, могут ли некоторые из них быть повторно представлены в будущем или нет, но на данный момент их следует считать устаревшими, и их следует избегать:
-
Конфигурация DOM
-
DOMErrorHandler
-
DOMImplementationList
-
DOMImplementationRegistry
-
Источник реализации ДОМИ
-
DOMLocator
-
ДОМОбъект
-
DOMSettableTokenList
-
DOMUserData
-
ЭлементТраверсал
-
Объект
-
EntityReference
-
Список имен
-
Обозначение
-
Информация о типе
-
UserDataHandler
Документ, содержащий HTML, описывается с использованием интерфейса Document
, который расширен спецификацией HTML и включает в себя различные специфические для HTML функции. В частности, интерфейс
Element
улучшен, чтобы стать HTMLElement
и различными подклассами, каждый из которых представляет один из (или семейство тесно связанных) элементов.
API HTML DOM обеспечивает доступ к различным функциям браузера, таким как вкладки и окна, стили и таблицы стилей CSS, история браузера и т. д. Эти интерфейсы обсуждаются далее в документации по HTML DOM API.
Интерфейсы элементов SVG
-
SVGAElement
-
SVGAltGlyphElement
Устаревший -
SVGAltGlyphDefElement
Устаревший -
SVGAltGlyphItemElement
Устаревший -
SVGAnimationElement
-
SVGAnimateElement
-
SVGAnimateColorElement
Not for use in new websites.»> Устаревший -
SVGAnimateMotionElement
-
SVGAnimateTransformElement
-
SVGCircleElement
-
SVGClipPathElement
-
SVGComponentTransferFunctionElement
-
SVGCursorElement
-
SVGDefsElement
-
SVGDescElement
-
SVGElement
-
SVGEllipseElement
-
SVGFEBlendElement
-
SVGFEColorMatrixElement
-
SVGFEComponentTransferElement
-
SVGFECompositeElement
-
SVGFEConvolveMatrixElement
-
SVGFEDiffuseLightingElement
-
SVGFEDisplacementMapElement
-
SVGFEDistantLightElement
-
SVGFEDropShadowElement
-
SVGFEFloodElement
-
SVGFEFuncAElement
-
SVGFEFuncBEElement
-
SVGFEFuncGElement
-
SVGFEFuncREElement
-
SVGFEGGaussianBlurElement
-
SVGFEImageElement
-
SVGFEMergeElement
-
SVGFEMergeNodeElement
-
SVGFEMorphologyElement
-
SVGFEOffsetElement
-
SVGFEPointLightElement
-
SVGFESpecularLightingElement
-
SVGFESpotLightElement
-
SVGFETileElement
-
SVGFEТурбулентностьЭлемент
-
SVGFilterElement
-
SVGFilterPrimitiveStandardAttributes
-
SVGFontElement
Not for use in new websites.»> Устаревший -
SVGFontFaceElement
Устаревший -
SVGFontFaceFormatElement
Устаревший -
SVGFontFaceNameElement
Устаревший -
SVGFontFaceSrcElement
Устаревший -
SVGFontFaceUriElement
Устаревший -
SVGForeignObjectElement
-
SVGGElement
-
SVGGeometryElement
-
SVGGlyphElement
Устаревший -
SVGGlyphRefElement
Not for use in new websites.»> Устаревший -
SVGGradientElement
-
SVGGraphicsElement
-
SVGHatchElement
Экспериментальный -
SVGHatchpathElement
Экспериментальный -
SVGHKernElement
Устаревший -
SVGImageElement
-
SVGLinearGradientElement
-
SVGLineElement
-
SVGMarkerElement
Экспериментальный -
SVGMaskElement
-
SVGMetadataElement
-
SVGMissingGlyphElement
Not for use in new websites.»> Устаревший -
SVGMPathElement
-
SVGPathElement
-
SVGPatternElement
-
SVGPolylineElement
-
SVGPolygonElement
-
SVGRadialGradientElement
-
SVGRectElement
-
SVGScriptElement
-
SVGSetElement
-
SVGStopElement
-
SVGStyleElement
-
СВГСВГЭлемент
-
SVGSwitchElement
-
SVGSymbolElement
-
SVGTextContentElement
-
SVGTextElement
-
SVGTextPathElement
-
Элемент SVGTextPositioning
-
SVGTitleElement
-
SVGTRefElement
Not for use in new websites.»> Устаревший -
SVGTSpanElement
-
SVGUseElement
-
SVGViewElement
-
SVGVKernElement
Устаревший
Интерфейсы типов данных SVG
Вот API DOM для типов данных, используемых в определениях свойств и атрибутов SVG.
Статический тип
-
SVGAngle
-
SVGColor
Устаревший -
SVGICCColor
Устаревший -
SVGElementInstance
-
SVGElementInstanceList
-
SVGLength
-
SVGLengthList
-
SVGMatrix
Not for use in new websites.»> Устаревший -
SVGNameList
-
SVGNumber
-
SVGNumberList
-
SVGPaint
-
SVGPathSeg
Устаревший -
SVGPathSegClosePath
Устаревший -
SVGPathSegMovetoAbs
Устаревший -
SVGPathSegMovetoRel
Устаревший -
SVGPathSegLinetoAbs
Устаревший -
SVGPathSegLinetoRel
Устаревший -
SVGPathSegCurvetoCubicAbs
Not for use in new websites.»> Устаревший -
SVGPathSegCurvetoCubicRel
Устаревший -
SVGPathSegCurvetoQuadraticAbs
Устаревший -
SVGPathSegCurvetoQuadraticRel
Устаревший -
SVGPathSegArcAbs
Устаревший -
SVGPathSegArcRel
Устаревший -
SVGPathSegLinetoHorizontalAbs
Устаревший -
SVGPathSegLinetoHorizontalRel
Устаревший -
SVGPathSegLinetoVerticalAbs
Not for use in new websites.»> Устаревший -
SVGPathSegLinetoVerticalRel
Устаревший -
SVGPathSegCurvetoCubicSmoothAbs
Устаревший -
SVGPathSegCurvetoCubicSmoothRel
Устаревший -
SVGPathSegCurvetoQuadraticSmoothAbs
Устаревший -
SVGPathSegCurvetoQuadraticSmoothRel
Устаревший -
SVGPathSegList
Устаревший -
SVGPoint
Устаревший -
SVGPointList
Not for use in new websites.»> Устаревший -
SVGPreserveAspectRatio
-
SVGRect
Устаревший -
SVGStringList
-
SVGTransform
-
SVGTransformList
Анимированный тип
-
SVGAnimatedAngle
-
SVGAnimatedBoolean
-
SVGAnimatedEnumeration
-
SVGAnimatedInteger
-
SVGAnimatedLength
-
SVGAnimatedLengthList
-
SVGAnimatedNumber
-
SVGAnimatedNumberList
-
SVGAnimatedPathData
Устаревший -
SVGAnimatedPoints
-
SVGAnimatedPreserveAspectRatio
-
SVGAnimatedRect
-
SVGAnimatedString
-
SVGAnimatedTransformList
-
Контроль времени элемента
-
Событие времени
Другие интерфейсы SVG
-
GetSVGDocument
-
ShadowAnimation
-
SVGColorProfileRule
Not for use in new websites.»> Устаревший -
SVGCSSRule
Устаревший -
SVGДокумент
-
SVGException
Устаревший -
SVGFitToViewBox
-
SVGLocatable
Устаревший -
SVGRenderingIntent
Устаревший -
SVGUnitTypes
-
SVGUseElementShadowRoot
-
SVGViewSpec
Устаревший -
SVGZoomEvent
Устаревший
Спецификация |
---|
Стандарт DOM |
- Примеры DOM
- Объектная модель CSS (CSSOM)
Последнее изменение: 000Z»> 15 ноября 2022 г. , участниками MDN
DOM: объектная модель документа — видеоурок по JavaScript
Из курса: JavaScript Essential Training
DOM: объектная модель документа
“
— Когда мы, люди, сталкиваемся с объектами в реальном мире, мы создаем модели этих объектов в уме. Просто подумай об этом. Если я произнесу слово «рюкзак», у вас сразу возникнет прототип модели рюкзака. То, как выглядит этот рюкзак, как он функционирует и что в нем содержится, будет отличаться от каждого человека, но общая модель одна и та же. Сумка большого размера с двумя лямками сбоку, которые можно накинуть на плечи. И вот в чем дело, эта ментальная модель объекта, объектная модель, становится более сложной и детальной, чем больше мы знаем об объекте. Поэтому, если я возьму этот рюкзак и открою его, чтобы показать вам карманы и особенности внутри, вы сразу же разработаете более продвинутую объектную модель для этого конкретного рюкзака и того, что находится внутри. Просто смотри. Позвольте мне просто закрыть этот рюкзак. И тогда я говорю: «Помоги мне найти свинью». Даже если вы этого не видите, вы установили объектную модель для этого рюкзака с надежной иерархией, и вы можете использовать ее, чтобы не только найти свинью, но даже объяснить кому-то еще, как ее найти. Я хочу, чтобы ты сделал это для меня прямо сейчас. Возьмите лист бумаги и ручку и представьте, что вы пишете набор инструкций совершенно незнакомому человеку о том, как найти свинью внутри этого пакета. Начните с «Возьми серый рюкзак», а затем перечислите все шаги, необходимые для того, чтобы добраться до свиньи. Я буду ждать. Хорошо, этого достаточно.
Так вот, мы с тобой, наверное, никогда не встречались, верно? И я буквально никак не мог увидеть то, что вы записали, потому что я здесь, в своем доме, записываю это за несколько месяцев до того, как вы это смотрите. Согласовано? Тем не менее, я почти уверен, что могу составить список шагов, который будет очень точно соответствовать вашему. Посмотрим. Номер один, хватай рюкзак. Во-вторых, откройте правую боковую панель. Номер три, откройте молнию внутри панели. Номер четыре, достаньте черный мешочек. Номер пять, вот свинья! Итак, мы, люди, естественным образом организуем все объекты окружающего нас мира в логические иерархические структуры. Вот почему, если вы придете ко мне домой и я скажу: «Можешь дать мне ложку?» Вы бы немедленно пошли на кухню и начали бы искать в верхних ящиках, потому что в большинстве случаев, из-за их формы и частоты использования, именно там хранятся столовые приборы. В примере с сумкой и в примере с кухней мы имеем иерархические деревья со стволом, ветвями, более тонкими ветвями и, в конце концов, ветвями.