如何将"this"与 ES6 类原型方法绑定



>我有一个名为B的简单类,它具有基本属性。我有一个名为 print 的原型方法,它将打印该类属性。现在,如果我使用正常的函数语法,一切正常。我想为我的原型使用箭头函数语法,我已经知道this内部箭头函数将引用全局(窗口(对象。我想this绑定我的类。有什么办法可以实现它吗?

class B {
constructor() {
this.name ="kannan";
}
}
B.prototype.print = function(){
console.log(this);
console.log(this.name);
}
let name = new B();
name.print() //Prints my name and works correctly

但是,如果我尝试使用箭头语法

B.prototype.print = () => {
console.log(this);
console.log(this.name);
}
name.print() //prints this as a global window object

如何实现使用箭头语法打印我的名字?

我不是 100% 确定,但正常的函数语法从运行它的位置获取其上下文。箭头语法从初始化位置获取其上下文。

尝试在构造函数中设置 Proto,它应该将"this"打印为类的实例。

另类: 将打印作为类的一个函数编写,您根本不应该有问题。

我不认为在类上使用原型在处理这个类的实例时很漂亮。

最新更新