调用javascript方法变量会丢失'这个'

时间:2018-05-11 17:09:30

标签: javascript typescript

我已经创建了一个指向如下方法的简单指针:

export class SmbwaService {
    getExistingArsByLab(labId: number): Observable<SmwbaAr[]> {
        this.otherMethod();
    }

    otherMethod(): void {
    }
}


let method: (x: number) => Observable<SmbwaAr[]>;
method = this.service.getExistingArsByLab;
method(12);

只要它调用getExistingArsByLab方法就执行OK。但是,我在尝试调用otherMethod时遇到错误,因为:

  

无法读取属性otherMethod of undefined。

正确的方法是什么?显然,在我的实际代码中method被设置为基于某些条件的多种不同方法之一。

1 个答案:

答案 0 :(得分:2)

使用Function.bind获取与this的特定值绑定的函数引用:

method = this.service.getExistingArsByLab.bind(this.service)
method(2)