这在 TypeScript 中是未定义的

this is undefined in TypeScript

我有一个class。

export class DatabaseHelper {

    public browserID : number;
    private ConfigID = 17;
}

现在,在同一个 class 中,我正在尝试访问 ConfigID

SetBrowserID() {
        browser.getCapabilities().then(function (cap) {

            this.browserID = new commFnctions.appdata().getBrowserIDFromBrowserName(cap.get('browserName'));
        });
    }

这是给我的错误:

TypeError: Cannot set property 'browserID' of undefined

这真的是打字稿的基础...使用箭头函数:

SetBrowserID() {
    browser.getCapabilities()
       //.then(function (cap) {
       .then((cap) => {

        this.browserID = new commFnctions
                .appdata()
                .getBrowserIDFromBrowserName(cap.get('browserName'));
    });
}

了解更多信息

Arrow Function 来自 Basarat