Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js模块的继承_Javascript_Node.js_Inheritance - Fatal编程技术网

Javascript Node.js模块的继承

Javascript Node.js模块的继承,javascript,node.js,inheritance,Javascript,Node.js,Inheritance,我在node.js中遇到继承问题。我遵循stackoverflows现有线程的模式,但我的代码仍然不能正常工作 让我们从两个项目开始,第一个是“base.js”: function Base() { this.type = 'empty'; } Base.prototype.getType = function () { return this.type; } module.exports = Base; 然后我有了我的'second.js'文件,它应该从Base继承 va

我在node.js中遇到继承问题。我遵循stackoverflows现有线程的模式,但我的代码仍然不能正常工作

让我们从两个项目开始,第一个是“base.js”:

function Base() {
    this.type = 'empty';
}

Base.prototype.getType = function () {
    return this.type;
}

module.exports = Base;
然后我有了我的'second.js'文件,它应该从Base继承

var Base = require('./base.js'), util = require('util');

function Second() {
    Base.apply(this, arguments);
}

util.inherits(Second, Base);


Second.prototype.getData = function () {
    return 12;
}

module.exports = Second;
在我的app.js中,我调用

var second = new require('./second.js');
console.log(second.getType());
这就是抛出错误“getType未定义”。然而,当我将所有这些放在一个文件(例如app.js)中时,一切正常。你能指出我的代码中有什么错误,或者提出更好的方法吗


谢谢

在app.js中,首先需要构造函数,然后构造新实例:

var Second = require('./second.js');
var second = new Second();

console.log(second.getType());
或者,您也可以这样做:

var second = new (require('./second.js'));
console.log(second.getType());

但在任何情况下,您都需要首先要求并且仅在应用
new
运算符之后。它与,
new
操作符具有非常高的优先级有关。

好了,现在它可以工作了,我看到了区别。非常感谢你!尝试
new(require('./second.js'))
。这对
base
也不起作用。