Как вы знаете, мы можем экспортировать данные
из модуля с помощью module.exports
:
function func1() {
}
function func2() {
}
module.exports.func1 = func1;
module.exports.func2 = func2;
Однако, зачастую писать module.exports
и имя функции создает слишком длинный код.
Поэтому существует сокращенный вариант экспорта
- в модуле есть специальный объект exports
,
в который мы также можем записывать то, что
хотим экспортировать:
function func1() {
}
function func2() {
}
exports.func1 = func1;
exports.func2 = func2;
Дан следующий код:
function square(num) {
return num * num;
}
function cube(num) {
return num * num * num;
}
module.exports.square = square;
module.exports.cube = cube;
Перепишите его через сокращенный синтаксис.
Ограничения
С практической точки зрения переменная exports
просто содержит ссылку на module.exports
.
Из-за этого проявляются некоторые ограничения:
мы не можем записать что-то в саму переменную
exports
- так мы затрем ссылку на
объект module.exports
.
Это значит, что следующий код не будет работать:
function func1() {
}
function func2() {
}
exports = {func1, func2}; // не будет работать
И этот:
exports = 'test'; // не будет работать
И этот:
exports = [1, 2, 3, 4]; // не будет работать
И этот:
exports = function() { // не будет работать
};
Дан следующий код:
function square(num) {
return num * num;
}
function cube(num) {
return num * num * num;
}
exports = {square, cube};
Исправьте ошибку, допущенную в этом коде.