gpt4 book ai didi

javascript - 使用此关键字的 typescript

转载 作者:行者123 更新时间:2023-12-02 22:12:01 26 4
gpt4 key购买 nike

我们正在使用 typescript 进行开发。我还收到评论说我们不应该使用“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”关键字的含义。

最佳答案

这对性能没有影响。但是使用名为 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 可能指的是其他东西,这取决于回调函数是如何调用的。

关于javascript - 使用此关键字的 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59526569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com