Javascript Node.js模块的继承
我在node.js中遇到继承问题。我遵循stackoverflows现有线程的模式,但我的代码仍然不能正常工作 让我们从两个项目开始,第一个是“base.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
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
也不起作用。