簡體   English   中英

Javascript:如何在派生類中重寫之前調用基類函數?

[英]Javascript: How to call base class function before overriding in derived class?

我正在嘗試在JavaScript中使用繼承。 我想知道如何在派生類中調用基類方法。

我的基礎班:

class BaseClass {

    constructor (args, kwargs) {

        this.query_params = args
        /* other initial variables in base class */
    }

    retrive () {

        let offset  =   parseInt(getData(this.query_params, 'offset', 0))
        let limit   =   parseInt(getData(this.query_params, 'limit', 20))

        /* extra functionalities */

    }
}

module.exports = BaseClass

我的派生類:

class DerivedClass extends BaseClass {

    constructor (args, kwargs) {
        super(args, kwargs)

        this.model  =   dataBase.ArticleList // using sequelize for database
    }


    retrive () {

        /* functionalities here */
    }


}

module.exports = DerivedClass

在運行DerivedClass中的任何其他代碼之前,我想在DerivedClass中調用BaseClass檢索功能。

我嘗試為解決方案搜索,但找不到任何方法。 請幫忙。

只需調用this.retrive(); super通話結束后:

 class BaseClass { constructor (args, kwargs) { this.query_params = args /* other initial variables in base class */ } retrive () { console.log('retrive'); } } class DerivedClass extends BaseClass { constructor (args, kwargs) { super(args, kwargs) this.retrive(); console.log('other stuff'); } retrive_list () { /* functionalities here */ } } const instant = new DerivedClass(); 

您可以像this使用super關鍵字,但是它將改為引用基類對象:

super.retrive();

另請參見MDN上示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM