此问题已在此处有答案:
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。
我该怎么解决这个问题?
1条答案
按热度按时间wh6knrhe1#
只是不要将函数的初始定义为方法。
然后
a
和b
将在作用域中,并且您将不依赖于this
被绑定到正确的对象。