Comments 10
Насколько я понимаю это не объект, а конструктор объекта.
Честно, я не разбирал исходники и не вникал как работает require(). Джеймс называет их модулями. По большому счету в итоге мы все равно получаем объект.
Функция, которая внутри конструируется через this — это конструктор объекта и вызываться должна через new.
нуу, this он не такой простой, как казалось раньше. Можно, например почитать тут howtonode.org/object-graphs, ну или здесь: dmitrysoshnikov.com/ecmascript/ru-chapter-3-this/. Ну и new то я не ипользую при загрузке модуля.
Это может быть что угодно: объект, функция, просто переменная или скажем хеш констант. Тем более, что функция от конструктора в JS отличается не декларацией, а тем, как вы её потом используете.
Буквально на выходных решил разобраться с node.js, для чего склепал чат, в котором, как в гугловейве, каждое сообщение передается по мере печати.

С модулями особо не парился, делал ссылку на класс доступной через exports. В яваскрипте жутко взбесило отсутствие связывания методов со своими объектами. В частности, что хендлеры для EventEmitter выполняются в его контексте, а не в контексте объекта, к которому хендлер принадлежит. После долгого использования AS3 очень сложно смириться с тем, что в js принято городить кучу вложенных анонимных функций и передавать контекст через замыкание.

С модулями особо не парился, делал ссылку на класс доступной через exports. В яваскрипте жутко взбесило отсутствие связывания методов со своими объектами. В частности, что хендлеры для EventEmitter выполняются в его контексте, а не в контексте объекта, к которому хендлер принадлежит. После долгого использования AS3 очень сложно смириться с тем, что в js принято городить кучу вложенных анонимных функций и передавать контекст через замыкание.
Sign up to leave a comment.
Понимание require() в Node.js