javascript - es6 super prop 方法调用 super other prop 方法

标签 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

我该怎么办?

最佳答案

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

关于javascript - es6 super prop 方法调用 super other prop 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48785273/

相关文章:

javascript - 增量运算符在 Sequelize 中不起作用

javascript - 有没有办法关闭 Chrome 扩展程序或 Firefox 插件的源代码?

javascript - 使用 jQuery DataTables 时如何获取 <tr> 的 id?

javascript - 加载图像、javascript 文件后预加载 div?

javascript - nodejs使用gm模块来处理图像,但我需要它同步

javascript - 如何在 Meteor 中记录出站 HTTP 请求?

javascript - 模板文字中的换行符和字符串文字中的 '\' 之间有什么区别?

javascript - Typescript - 检查项目的状况

node.js - 使用 Stripe Firebase 扩展 Webhook 未触发运行订阅付款

javascript - 销毁对象的嵌套数组 javascript