Скажем, есть модуль, который экспортирует класс. Не нарушает ли какие-либо принципы ссылки на объявленные локальные функции из метода класса?
Пример:
function doSomething() {}
class Cat {
constructor () {}
say () {
doSomething()
return 'meow'
}
}
module.exports.Cat = Cat
Это не только не нарушает никаких принципов, это хороший способ организовать поведение. 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"