es6 super propMethod调用超级其他propMethod

时间:2018-02-14 10:48:07

标签: javascript node.js ecmascript-6

我使用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

我该怎么办?

1 个答案:

答案 0 :(得分:0)

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();