如何在超类静态函数中从子类引用静态参数?

时间:2019-06-30 01:32:02

标签: javascript inheritance ecmascript-6 static

我有以下代码:

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

1 个答案:

答案 0 :(得分:2)

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

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

class B extends A {}

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