访问这个' TypeScript中的变量

时间:2016-07-15 08:02:06

标签: jquery typescript this

在TypeScript中,如果使用() => {...}定义函数,this变量将引用周围类的实例。但是,如果您使用function () {...},则this变量将具有旧的JavaScript解释。

有没有办法在TypeScript函数中访问这两个this变量?

在TypeScript中使用JQuery时偶尔需要这个:

class X {
    private v : string;
    constructor() {
        $('.xyz').on('change', function() {
            this.v = $(this).prop('value'); // Two different this's
        })
    }
 }

在代码的中心行,第一个this应该引用类X对象,而第二个this应该引用触发事件的JQuery对象。

1 个答案:

答案 0 :(得分:5)

change事件处理程序this中,将引用仅引发事件的.xyz元素。如果你想要引用包含X类,那么你需要存储一个包含该引用的变量,如下所示:

class X {
    private v : string;
    constructor() {
        var _x = this;
        $('.xyz').on('change', function() {
            _x.v = $(this).prop('value'); 
        })
    }
 }