我正在努力用JavaScript重构一些代码,这是一种我不太熟悉的语言,所以我遇到了一些问题,我正在理解我面临的一些错误。
原始代码,运行正常,采用以下格式:
function doSomething(website){
//logic
}
function doSomethingElse(value){
doSomething(value);
}
但是,我必须将所有现有代码放在模块导出语句中,因为我需要将它与其他服务集成。所以现在代码看起来有点像:
module.exports = class DoAllThings{
doSomething(website){
//logic
}
doSomethingElse(value){
doSomething(value);
}
}
然而这不起作用,因为它说doSomething不是一个功能。我已经尝试将函数设置为var并以这种方式访问它,并通过.this访问:
this.doSomething(value);
无济于事。
我已将模块导出定义为类,因此我可以在另一个文件中执行此操作:
let accessVar = new DoAllThings();
accessVar.doSomethingElse(value);
还有其他“类”我必须按照模式进行整合。那么有谁知道我将如何访问这些功能?我认为这与我回归的方式有关,但我不太确定。
答案 0 :(得分:0)
一种方法:
//I am kinda private, can't be accesed from outside
function doSomethingElse() {
console.log('something else');
}
module.exports = {
doSomething: function() {
doSomethingElse();
}
}
...
const yourModule = require('yourModule');
yourModule.doSomething() //console.log
另:
const doSomethingElse = function() {
console.log('something else')
}
const doSomething = function() {
doSomethingElse();
}
module.exports = {doSomething}
//or
module.exports = {doSomething, doSomethingElse}
上课:
module.exports = class Y {
doSomething() {
this.doSomethingElse();
}
doSomethingElse() {
console.log('something else');
}
}