Согласно руководству Node.js:
Если вы хотите, чтобы корень вашего экспорта модуля являлся функцией (например, конструктор) или если вы хотите экспортировать полный объект в один вместо того, чтобы создавать одно свойство за раз, назначьте его module.exports вместо экспорта.
Приведенный пример:
// file: square.js
module.exports = function(width) {
return {
area: function() {
return width * width;
}
};
}
и используется так:
var square = require('./square.js');
var mySquare = square(2);
console.log('The area of my square is ' + mySquare.area());
Мой вопрос: почему пример не использует квадрат как объект? Является ли следующее допустимым и делает ли этот пример более "объектно-ориентированным"?
var Square = require('./square.js');
var mySquare = new Square(2);
console.log('The area of my square is ' + mySquare.area());