0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Для понимания того, как соотносятся друг с другом внутренности классов, которые связаны наследованием, нужно разобраться с таким понятием как позднее связывание (late binding).</p>
1
<p>Для понимания того, как соотносятся друг с другом внутренности классов, которые связаны наследованием, нужно разобраться с таким понятием как позднее связывание (late binding).</p>
2
<p>Вспомним базовый класс<em>HTMLElement</em>из прошлого урока. Внутри него активно используется this для обращения к свойствам:</p>
2
<p>Вспомним базовый класс<em>HTMLElement</em>из прошлого урока. Внутри него активно используется this для обращения к свойствам:</p>
3
<p>Предположим, что мы создаем объект класса<em>HTMLAnchorElement</em>(который наследует<em>HTMLElement</em>). Тогда объектом какого класса будет this внутри методов родительского класса? Правильный ответ:<em>HTMLAnchorElement</em>, то есть того класса, объект которого мы прямо сейчас создаем. Посмотрите на пример:</p>
3
<p>Предположим, что мы создаем объект класса<em>HTMLAnchorElement</em>(который наследует<em>HTMLElement</em>). Тогда объектом какого класса будет this внутри методов родительского класса? Правильный ответ:<em>HTMLAnchorElement</em>, то есть того класса, объект которого мы прямо сейчас создаем. Посмотрите на пример:</p>
4
<p>Эта особенность this называется поздним связыванием. Оно означает, что на момент определения класса, тип this неизвестен. В качестве текущего объекта может выступать объект любого класса, наследуемого от текущего. Все выглядит так, как будто весь код внутри базового класса скопировали и перенесли в каждый класс-наследник. Для позднего связывания не важно, насколько глубокая иерархия наследования. this всегда будет объектом того класса, который конструируется в коде.</p>
4
<p>Эта особенность this называется поздним связыванием. Оно означает, что на момент определения класса, тип this неизвестен. В качестве текущего объекта может выступать объект любого класса, наследуемого от текущего. Все выглядит так, как будто весь код внутри базового класса скопировали и перенесли в каждый класс-наследник. Для позднего связывания не важно, насколько глубокая иерархия наследования. this всегда будет объектом того класса, который конструируется в коде.</p>
5
<p>Позднее связывание - важный элемент в работе наследования. Без него взаимодействие классов стало бы значительно сложнее и ограниченнее. Каждый объект должен был бы наверняка знать, к какому классу конкретно относятся свойства и методы в цепочке наследования. Понадобился бы специальный синтаксис для доступа к ним.</p>
5
<p>Позднее связывание - важный элемент в работе наследования. Без него взаимодействие классов стало бы значительно сложнее и ограниченнее. Каждый объект должен был бы наверняка знать, к какому классу конкретно относятся свойства и методы в цепочке наследования. Понадобился бы специальный синтаксис для доступа к ним.</p>