1 下面的B.prototype.compile方法中,无法访问super
javascript
class A {
compile() {
console.log('A')
}
}
class B extends A {
compile() {
super.compile()
console.log('B')
}
}
B.prototype.compile = function() {
super.compile() // 报错,不可以在此处使用super
console.log('B2')
}
const b = new B()
b.compile() // A B2
2 替代方法如下
javascript
class A {
compile() {
console.log('A')
}
}
class B extends A {
compile() {
super.compile()
console.log('B')
}
}
B.prototype.compile = function() {
A.prototype.compile.call(this) // 替代super
console.log('B2')
}
const b = new B()
b.compile()
// A
// B2