如何在Typescript中创建变量不使用它

时间:2014-06-06 15:06:06

标签: javascript typescript this

我需要创建一个TS变量来将外部的这个上下文放到一个函数中,这样我就可以调用它。

    public that = this;

    constructor() {
        $('#start').click(function(){
            $(this).hide();
            that.createLoader();
        });
    }

这个JS的结果,

    function SpaceInvaders() {
        this.that = this;
        $('#start').click(function () {
            $(this).hide();
            this.that.createLoader();
        });
    }

正如您所见,生成代码结果为this.that.cretaeLoader(),实际上是Jquery DOM元素。

我是TS的新手,请帮助

2 个答案:

答案 0 :(得分:4)

that

中声明constructor
constructor() {
    var that = this;
    $('#start').click(function(){
        $(this).hide();
        that.createLoader();
    });
}

答案 1 :(得分:4)

替代方案是使用一些"绑定到上下文"功能

declare var $:any;
class MyClass {

    createLoader(){}

    constructor() {
        $('#start').click((e)=>{
            $(e.currentTarget).hide();
            this.createLoader();
        });
    }
}

see exemple