我使用nodejs 6.10.3的代码显示在下面,我对es6类继承有问题。
'use strict';
class Foo {
constructor() {}
hi() {
console.log('foo.hi');
this._hi();
}
_hi() {
console.log('foo._hi');
}
}
class Goo extends Foo {
constructor() {
super();
}
hi() {
console.log('goo.hi');
super.hi();
}
_hi() {
console.log('goo._hi');
}
}
let goo = new Goo();
goo.hi();
console.log输出是这个。
// goo.hi
// foo.hi
// goo._hi
但是我需要这个。
// goo.hi
// foo.hi
// foo._hi
我能怎么做?
最佳答案
super
将初始化this
'use strict';
class Foo {
constructor() {}
hi() {
console.log('foo.hi');
this._hi();
}
_hi() {
console.log('foo._hi');
}
}
class Goo extends Foo {
constructor() {
super();
}
hi() {
console.log('goo.hi');
Foo.prototype.hi();
}
_hi() {
console.log('goo._hi');
}
}
let goo = new Goo();
goo.hi();