如何获取打字稿中“ this”的范围

时间:2019-01-17 14:45:39

标签: javascript typescript scope

我有以下课程:

module ModuleName {
    export class ClassName {

        constructor() {
            this.bindEvents();
        }

        bindEvents() {
            var self = this;
            $("#save-button").off("click")
                .click(() => {
                    self.classFunction();
                });
        };

        classFunction(){
        }
    }
}

我希望self变量现在包含对该类的引用。 (编译器甚至告诉我确实如此!)

但是,当js加载到客户端时,它找不到函数,因为self指向窗口对象而不是类。

我该如何实现它以便对班级进行引用?

生成的js:

        ClassName.prototype.bindEvents= function () {
            var self = this;
            $("#save-button").off("click")
                .click(function () {
                self.classFunction();
            });
        };

1 个答案:

答案 0 :(得分:1)

使用箭头功能可以解决您的问题。

const bindEvents = () => {
 // your code
}

ES6不会在普通函数中将“ this”自动绑定到类语法。

使用箭头功能会将“ this”引用到类中。