有一点我想问,关于nodejs中的继承
 发布于 13 年前  作者 huangdh3  14028 次预览  最后一次回复是 13 年前  来自  

很多都是exports,而没有继承,我想问下,exports方式有没有提供继承! 还是说继承的话要使用global来应用! 不知道大家有没有遇到需要继承的情况!

11 回复
leizongmin

继承用**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 的原型继承嘛,自己继承也是行的

viclm

exports是模块的概念,模块如何继承,只有模块内的class可以继承

magicpig

把模块里的内容公布到 顶级的 prototype中即可,如 string.prototype

blue5tar

新代码高亮很赞啊!

blue5tar
var classA = require("./classa");

function classB() {
    classA.call(this);
}

util.inherits(classB, classA);
classB.prototype.fun = function() {

};

exports = module.exports = classB;
danielking

还可以用coffeescript,源代码看起来更简洁自然一些

danielking

哦,没看清问题 继承和export没啥冲突吧,两个概念,不就是export过来再继承?