我有以下代码:

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'?

最佳答案

使其成为普通函数,而不是箭头函数-箭头函数会失去与this的绑定:



class A {
    static printName() {
        console.log(this.name);
    }
}

class B extends A {}

A.printName();
B.printName();

10-04 10:01