在TypeScript中,可以通过箭头函数来访问两个'this'变量。箭头函数是ES6中引入的一种新的函数定义方式,它不会创建自己的'this',而是会捕获所在上下文的'this'值。
在普通函数中,'this'的值是在运行时确定的,它指向调用该函数的对象。而在箭头函数中,'this'的值是在定义时确定的,它指向箭头函数所在的上下文。
假设有一个类,其中包含两个成员函数,分别是函数A和函数B。在函数A中定义一个箭头函数,可以通过箭头函数访问到函数A的'this',同时也可以访问到类的'this'。示例代码如下:
class MyClass {
private x: number = 10;
functionA() {
const arrowFunc = () => {
console.log(this.x); // 访问函数A的'this',输出10
console.log(this); // 访问类的'this'
};
arrowFunc();
}
functionB() {
console.log(this.x); // 访问类的'this',输出10
}
}
const myObj = new MyClass();
myObj.functionA();
myObj.functionB();
在上述示例中,箭头函数arrowFunc可以访问到函数A的'this',输出结果为10。同时,箭头函数也可以访问到类MyClass的'this',输出结果为MyClass对象。
需要注意的是,箭头函数的'this'是静态的,无法通过call()、apply()、bind()等方法来改变。此外,箭头函数也不能用作构造函数,因为它没有自己的'this'值。
领取专属 10元无门槛券
手把手带您无忧上云