Тема: requires vs uses
Показать сообщение отдельно
  #2 (permalink)  
Старый 12.12.2015, 00:05
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Сообщение от khusamov Посмотреть сообщение
Инструкция requires гарантирует загрузку, перечисленных в ней классов до инстанцирования (наверное до создания экземпляров) данного класса.
Вот тут ошибка: requires гарантирует загрузку перечисленных зависимостей до *создания* данного класса. Т.е. сам класс не определён до тех пор, пока все зависимости не созданы.

Цитата:
Инструкция uses гарантирует загрузку, перечисленных в ней классов до вызова обработчиков Ext.onReady.
Это верно.

Цитата:
Почему тогда всюду используется requires?

И в коде самого ExtJS и в пользовательском коде.
Потому что uses фактически нужно только для того, чтобы разрывать круговые зависимости: если Foo нужен Bar, а Bar в свою очередь хочет Foo, то мы не можем включить их в requires с обеих сторон, загрузчик обидится. В таком случае Foo может включать Bar в requires, а Bar включает Foo в uses, и все довольны.
Ответить с цитированием