gpt4 book ai didi

node.js - 如何在 node.js 模块中实现继承?

转载 作者:IT老高 更新时间:2023-10-28 21:59:29 25 4
gpt4 key购买 nike

我正在编写 nodejs 应用程序。它基于expressjs。我对在 nodejs 模块中进行继承感到困惑。我想做的是创建一个模型基类,比如说 my_model.js。

module.exports = function my_model(){
my_model.fromID = function(){
//do query here
}
}

现在我想在我的其他模型类中使用 my_model 中的这些方法。假设 user_model.js如何继承 user_model 中的 my_model?

最佳答案

在 base_model 中:

function BaseModel() { /* ... */ }

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

module.exports = BaseModel;

在用户模型中:

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;

除了直接使用Object.create(),还可以使用util.inherits ,所以你的 user_model 变成:

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;

关于node.js - 如何在 node.js 模块中实现继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16213495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com