gpt4 book ai didi

javascript - 从 module.exports 内的不同函数访问函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:46 26 4
gpt4 key购买 nike

我正在用 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);

还有其他“类”我必须按照模式进行集成。那么有人知道我将如何访问这些功能吗?我认为这与我返回的方式有关,但我不太确定。

最佳答案

一种方法:

//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');
}
}

关于javascript - 从 module.exports 内的不同函数访问函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45720043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com