Показать сообщение отдельно
  #4 (permalink)  
Старый 17.11.2009, 16:36
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Octane
Просто в результате выражения с оператором new, ожидается получить объект, а тут вдруг еще и null появляется.
Вообще, функция-конструктор (когда на последнем этапе вызывается, как инициализатор) может запросто что-то вернуть. И именно это "что-то" и будет результатом new (вновь созданный объект, в свою очередь, просто удалиться, т.к. ссылок на него не будет). Поэтому с точки зрения алгоритма, нарушений нет, если вернуть null. Разве что, "страдает" интуитивно-ожидаемый результат. Но, это дело привычки и знания/не знания, что new не обязательно должен возвращать вновь созданный объект.

Этот "сахар" с new часто используют в обёртках для классов, типа:

var MyClass = new Class({...});


где new - что есть, что нет - так, для красоты и интуитивно-ожидаемого результата.

С другой стороны, "мёртвые цепочки" в jQuery, выглядят ещё менее интуитивно. Действительно, если объект не найден - его нет, и обёртка - ни к чему. Хотя, это только моё мнение.
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 17.11.2009 в 17:58.
Ответить с цитированием