我有一个名为B的简单类,它具有基本属性。我有一个名为print的原型方法,它将打印该Class属性。现在,如果我使用正常的函数语法,则一切正常。我想为我的原型使用箭头函数语法,我已经知道箭头函数内部的this
将引用global(window)对象。我希望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
如何使用箭头语法打印我的姓名?
答案 0 :(得分:0)
我不是100%肯定,但是普通函数语法从运行它的地方获取其上下文。箭头语法从其初始化位置获取其上下文。
尝试在构造函数中设置原型,它应该将“ this”打印为您的类实例。
替代: 将print作为类的函数来编写,您根本就不会遇到问题。
在使用此类的实例时,我认为在类上使用原型不是很好。