CNode

有一点我想问,关于nodejs中的继承

Hhuangdh3发布于14 年前最后回复14 年前11 回复14226 浏览0 收藏

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

查看回复

回复 (10)

L
leizongmin#1·14 年前

继承用**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!"
V
viclm#5·14 年前

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

M
magicpig#6·14 年前

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

B
blue5tar#7·14 年前

新代码高亮很赞啊!

B
blue5tar#8·14 年前
var classA = require("./classa");

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

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

};

exports = module.exports = classB;
D
danielking#9·14 年前

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

D
danielking#10·14 年前

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

参与回复
登录后即可参与回复。登录