提问人:Joseph Hutton 提问时间:8/27/2023 更新时间:8/27/2023 访问量:16
作为同一类中方法的参数传递的类方法似乎丢失了全局变量范围 [duplicate]
A class method Passed as a parameter of method in the same class seems to loose global variable scope [duplicate]
问:
class Myclass{
private _myvar = "foo"
function1(){
this.function2(this.function3)
}
function2(myfunction){
myfunction()
}
function3(){
this.function4()
}
function4(){
consoleLog(this._myvar)
}
}
var myClass = new Myclass()
有谁知道为什么为上述类运行以下代码行会产生未知类型错误?
myClass.function1();
myClass.function2(myClass.function3);
但是运行以下命令不会?
myClass.function3();
myClass.function4();
我希望这可以通过以某种方式绑定来解决,但我不确定如何解决。
答: 暂无答案
评论
this.function2(() => this.function3())
可能是最惯用的解决方案。this.function2(this.function3.bind(this))