How to implement inheritance in node.js modules?

后端 未结 3 1642
旧时难觅i
旧时难觅i 2021-01-31 09:00

I am in process of writing nodejs app. It is based on expressjs. I am confused on doing inheritance in nodejs modules. What i am trying to do is create a model base class, let\'

3条回答
  •  旧时难觅i
    2021-01-31 09:24

    in base_model:

    function BaseModel() { /* ... */ }
    
    BaseModel.prototype.fromID = function () { /* ... */ };
    
    module.exports = BaseModel;
    

    in user_model:

    var BaseModel = require('relative/or/absolute/path/to/base_model');
    
    function UserModel() {
        UserModel.super_.apply(this, arguments);
    }
    
    UserModel.super_ = BaseModel;
    
    UserModel.prototype = Object.create(BaseModel.prototype, {
        constructor: {
            value: UserModel,
            enumerable: false
        }
    });
    
    UserModel.prototype.yourFunction = function () { /* ... */ };
    
    module.exports = UserModel;
    

    Instead of using Object.create() directly, you can also use util.inherits, so your user_model becomes:

    var BaseModel = require('relative/or/absolute/path/to/base_model'),
        util = require('util');
    
    function UserModel() {
        BaseModel.apply(this, arguments);
    }
    
    util.inherits(UserModel, BaseModel);
    
    UserModel.prototype.yourFunction = function () { /* ... */ };
    
    module.exports = UserModel;
    

提交回复
热议问题