我有以下代码:
class A {
static printName = () => {
console.log(this.name);
}
}
class B extends A {}
A.printName(); //Prints 'A'
B.printName(); //Prints 'A' (I thought it would print 'B')
为什么B.printName()
不打印'B'而不是'A'?
答案 0 :(得分:2)
将其设为普通函数,而不是箭头函数-箭头函数会失去与this
的绑定:
class A {
static printName() {
console.log(this.name);
}
}
class B extends A {}
A.printName();
B.printName();