Node.js模块和递归[重复]

m0rkklqb  于 2023-05-17  发布在  Node.js
关注(0)|答案(1)|浏览(77)

此问题已在此处有答案

When should I use this.x vs. var x?(4个答案)
Why Should I use this.name instead of name in Person Constructor (and similar constructors)?(3个答案)
Javascript: Do I need to put this.var for every variable in an object?(6个答案)
昨天关门了。
我已经创建了一个node.js模块,其中包含方法a和可选的递归调用。简化结构:

module.exports = {
a() {
 // ...
 if (condition) {
  a();
  b();
 }
 // ...
}

 b() {
  //...
 }
}

使用const { a } = require(path)导入此模块后,使用导致condition为false的参数调用a可以完美地工作。但是,当递归调用a时,会引发ReferenceError,并显示消息“a is not defined”。
更改对this.a()的递归调用似乎解决了原来的问题,但现在对b也会引发同样的错误,无论前面是否有this。
我该怎么解决这个问题?

wh6knrhe

wh6knrhe1#

只是不要将函数的初始定义为方法。

const a = () => {};
const b = () => {};
module.exports = { a, b };

然后ab将在作用域中,并且您将不依赖于this被绑定到正确的对象。

相关问题