我正在编写 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?
在基本模型中:
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.继承 http://nodejs.org/api/util.html#util_util_inherits_constructor_superconstructor,所以你的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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)