说,有一个模块可以导出一个类。它是否违反了从类方法引用声明的本地函数的任何原则?
一个例子:
function doSomething() {}
class Cat {
constructor () {}
say () {
doSomething()
return 'meow'
}
}
module.exports.Cat = Cat
答案 0 :(得分: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"