首页 > 解决方案 > 如何明确访问类中的私有方法?

问题描述

考虑这个标准的 TypeScript 类和一个私有方法:

class foo {
    private doThis() {
       ///
    }
}

在类内部,可以使用以下内容访问私有方法:

this.doThis();

除非它在闭包/事件中,在这种情况下我们缓存类引用:

const classRef: any = this;
$('#foo').on('click', function() {
    classRef.doThis();   
});

当然,如果您将“this”层数降低并且您需要达到类的顶层,则该方法会失效。

那么,是否有访问类级别私有方法(或类级别变量)的确定方法?

标签: typescript

解决方案


在闭包内使用箭头函数:

class foo {
    private doThis() {
       ///
    }

    otherFunction() {
        $('#foo').on('click', () => {
            this.doThis();   
        });
    }
}

您的 this 将始终是类参考。


推荐阅读