此关键字的打字稿使用

时间:2019-12-30 06:23:36

标签: javascript typescript performance this

我们正在使用打字稿进行开发。 我也收到一条评论评论,认为我们不应使用“ this”关键字,它会影响性能。 本地代码:

export Class MyClass
    {
    public myMethod1(Data) {     
            this.myMethod2();
        }

    public myMethod2() {
        }
    }

我们正在使用如下所示访问“ this”。 更改后:

export Class MyClass
{
public myMethod1(Data) {
        let self = this;
        self.myMethod2();
    }

public myMethod2() {
    }
}

所以,请您帮忙使用'this'关键字。

1 个答案:

答案 0 :(得分:1)

这对性能没有影响。但是,在每个类方法的开头使用名为self的变量并使用this对其进行初始化,可能有助于避免不必要的行为。例如:

Class MyClass
{
    public foo () {
        const self = this;

        callMeLater(function (){
            console.log(self); // "self" is always the instance of MyClass
            console.log(this); // "this" may refer to another object!
        });
    }
}

在此示例中,捕获self的同时保留对MyClass实例的引用,并且在回调函数中它仍指向MyClass实例,但是在回调函数this中可能引用了某些内容否则,这取决于回调函数的调用方式。