有一点我想问,关于nodejs中的继承
很多都是exports,而没有继承,我想问下,exports方式有没有提供继承! 还是说继承的话要使用global来应用! 不知道大家有没有遇到需要继承的情况!
11 回复
继承用**util.inherits(constructor, superConstructor)**嘛,官方文档中的例子:
var util = require("util");
var events = require("events");
function MyStream() {
events.EventEmitter.call(this);
}
util.inherits(MyStream, events.EventEmitter);
MyStream.prototype.write = function(data) {
this.emit("data", data);
}
var stream = new MyStream();
console.log(stream instanceof events.EventEmitter); // true
console.log(MyStream.super_ === events.EventEmitter); // true
stream.on("data", function(data) {
console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"
老雷,我恨你呀。。。为啥咱们这里没有表情呢。。。
@olddog 老狗加一个
神马情况
这个官方的继承其实就是 js 的原型继承嘛,自己继承也是行的
exports是模块的概念,模块如何继承,只有模块内的class可以继承
把模块里的内容公布到 顶级的 prototype中即可,如 string.prototype
新代码高亮很赞啊!
var classA = require("./classa");
function classB() {
classA.call(this);
}
util.inherits(classB, classA);
classB.prototype.fun = function() {
};
exports = module.exports = classB;
还可以用coffeescript,源代码看起来更简洁自然一些
哦,没看清问题 继承和export没啥冲突吧,两个概念,不就是export过来再继承?