递归"/>
Node.js 模块和递归
我创建了一个 node.js 模块,其中包含带有可选递归调用的方法
a
。简化结构:
module.exports = {
a() {
// ...
if (condition) {
a();
b();
}
// ...
}
b() {
//...
}
}
在使用
const { a } = require(path)
调用 a
并使用导致 condition
为假的参数导入此模块后,效果完美。
但是,当 a
被递归调用时,将引发 ReferenceError 并显示消息“a
未定义”。
将递归调用更改为 this.a() 似乎解决了原来的问题,但是现在 b 出现了同样的错误,前面有和没有 this。
我该如何解决这个问题?
回答如下:只是不要将函数的初始定义定义为方法。
const a = () => {};
const b = () => {};
module.exports = { a, b };
然后
a
和 b
将在范围内,您将不会依赖 this
绑定到正确的对象。
更多推荐
Node.js 模块和递归
发布评论