Node.JS中的继承

我正在使用node.js和基于express.js的编程.我曾尝试使用util.inherits在 JavaScript中实现继承.我试过的内容如下:

//request.js
function Request() {
    this.target = 'old';
    console.log('Request Target: ' + this.target);
}

Request.prototype.target = undefined;
Request.prototype.process = function(callback) {
    if (this.target === 'new')
       return true;

    return false;
}

module.exports = Request;

//create.js
function Create() {
    Create.super_.call(this);
    this.target = 'new';
}

util.inherits(Create,Request);

Create.prototype.process = function(callback) {
    if (Create.super_.prototype.process.call(this,callback)) {
        return callback({ message: "Target is 'new'" });
    } else {
        return callback({ message: "Target is not 'new'" });
    }
}

module.exports = Create;

//main.js
var create = new (require('./create'))();
create.process(function(msg) {
    console.log(msg);
});

我的情况是:

我有Request作为基类和Create作为子类. Request具有在Request构造函数中初始化old的字段目标.

现在,我创建Create类对象,首先调用Request构造函数然后用new初始化目标字段.当我调用Create的进程函数时,我希望得到目标的消息是’new’但它返回另一个

我为此寻找了类似的线程,但所有这些都是我尝试过的!任何人都可以解释什么是错的吗?

提前致谢 :)

解决方法

util.inherits真的很尴尬超级_…无论如何,这应该工作:

Create.super_.prototype.process.call(this,callback);

但是真的,

var super_ = Request.prototype;

然后语法变得几乎方便:

super_.process.call(this,callback);

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...