Ссылки на классы для функции локального модуля

1

Скажем, есть модуль, который экспортирует класс. Не нарушает ли какие-либо принципы ссылки на объявленные локальные функции из метода класса?

Пример:

function doSomething() {}

class Cat {
    constructor () {}
    say () {
        doSomething()
        return 'meow'
    }
}

module.exports.Cat = Cat
  • 0
    Я постоянно пишу такие модули Node. Помимо личного стиля, это дает вам возможность четко отделить частные методы от общедоступного API вашего модуля.
Теги:
module

1 ответ

2

Это не только не нарушает никаких принципов, это хороший способ организовать поведение. doSomething() будет функцией, которая является частной для модуля. Это упрощает поиск совместимого интерфейса с вашим классом, не беспокоясь о его реализации.

Так, например, в mod.js:

function doSomething() {
    console.log("I'm doing something")
}

class Cat {
    constructor () {}
    say () {
        doSomething()
    }
}

module.exports.Cat = Cat

Теперь используйте его:

var mod = require('./mod')
var cat = new mod.Cat
cat.say()
// logs to console: "I'm doing something"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню