require()
является function
и вызывается с String
"http"
здесь.Затем Node.js ищет модуль http
, интерпретирует его, а require()
возвращает Object
с экспортом данного модуля.Таким образом, module - это require()
d, который может export
несколько вещей, а не просто class
.
. Object
в JavaScript - это то, что в других языках называется 'словарь' или 'карта' , связывающая значения с ключами типа String
.(Map
был позже добавлен в JavaScript и может иметь ключи любого типа.)
createServer()
- это всего лишь function
в этом Object
, под ключом "createServer"
.При вызове он возвращает другой Object
, экземпляр из class http.Server
.Это можно назвать заводской функцией .Смотрите его реализацию здесь .
listen()
, в свою очередь, аналогично function
в этом Object
, другими словами, метод из class http.Server
.
Ни один из них не является конструкторами , которые вызываются с ключевым словом new
, как в: new http.Server()
.
server.constructor === http.Server