我有一个接受回调方法参数的外部javascript类。运行回调时,就像API会窃取该方法并尝试在其内部运行一样。
下面有一个例子。这个想法是,API应该能够宣布经理为“经理”,但是却宣布自己(“ API”)。
class Manager{
constructor(){
this.name = "Manager";
}
manage(){
var api = new API(this.announce);
}
announce(){
alert(this.name);
}
}
class API{
constructor(announceCallback){
this.name = "API";
this.announceManager = announceCallback;
this.announceManager();
}
}
manager = new Manager();
manager.manage();
如何从Javascript中的外部类访问“ this”。我已经读过JS can lose implicit binding。我也一直在阅读call() and apply(),但是这些似乎仅适用于函数而不适用于类方法。如何修改我的“ Manager”类,以便当API调用“ announceCallback”时提醒“ Manager”而不是“ API”。我特别需要在类和not independent functions as described in another post中使用的分辨率。