Показать сообщение отдельно
  #3 (permalink)  
Старый 02.05.2011, 15:15
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от melky
почему почти везде делают так
из-за невозможности использовать свойство prototype получаемого конструктора (точнее его использование становится бесполезным). Это неправильно с точки зрения ООП. По этой причине в ранних версиях PrototypeJs вместо "new Element" было "Element.create" и вместо "new Class" было "Class.create" (там еще есть примеры, например, тот же XMLHttpRequest по-прежнему добывается через "Ajax.getTransport"). Позже в MooTools это решили добавлением специальных методов, которые как бы создают видимость, что все нормально (по факту вручную дописывают методы созданному экземпляру). Еще позже PrototypeJs догнал по элементам и теперь можно писать "new Element", у создаваемых классов тоже появились нужные методы (точнее один: Class#addMethods), но видимо для совместимости оставили вызов через "Class.create" (или может чего еще не хватило для правильного ООП).

Последний раз редактировалось Riim, 02.05.2011 в 15:24.
Ответить с цитированием