CoffeeScript и NodeJS: как экспортировать несколько классов?
Я хочу экспортировать некоторые классы, скажем, Dog
а также Cat
, Один из способов сделать это:
class Dog
bark: -> console.log "Arff! :D"
class Cat
meaow: -> console.log "Meaw!"
module.exports = {Dog, Cat}
Как я могу сделать что-то подобное, не вводя имена классов дважды?
3 ответа
Решение
Вы можете использовать что-то вроде этого:
class exports.Dog
bark: -> console.log "Arff! :D"
Это сводится к:
exports.Dog = (function() {
function Dog() {}
Dog.prototype.bark = function() {
return console.log("Arff! :D");
};
return Dog;
})();
Альтернативный путь к этому заключается в следующем:
module.exports =
Dog: class Dog
bark: -> console.log "Arff! :D"
Cat: class Cat
meaow: -> console.log "Meaw!"
Тогда вы можете сделать следующее:
animals = require './animals'
dog = new Animals.dog()
Обычно я хочу локальную переменную (поэтому мне не нужно вводить exports.x
все время) и переменную экспорта (поэтому мне не нужно определять все экспорты сразу в конце), поэтому я делаю следующее:
exports.dog = class Dog
bark: ->
exports.cat = class Cat
meow: ->