nodejs 实现继承 var util=require(‘util’);
function base(){ … }
base.prototype.showName=function(){ … }
function sub(){ … }
util.inherits(sub,base);
//实现对象sub继承base对象,但是只继承base.prototype.showName(); var objbase= new base();//实例化话对象base var objsub=new sub();//实例化对象sub
以上是在网上搜到的,但是有两个文件,一个base.js、一个sub.js 怎么互相实现继承呢?本人菜鸟请大侠们指教,多谢!
。。。。,应该问js怎么继承,最简单的就是原型继承
function object(o){
function F(){};
F.prototype = o;
return new F();
}
sub = object(base)
楼上的对
用mootools框架
function Base() {
}
function Sub() {
Base.call(this)
}
util.inherits(Sub, Base);
我在node中用的继承也不知道对不对,你可以借鉴一下,因为一个模块实际上就是一个封装,和普通的类没啥区别,只不过需要继承的地方要引入被继承的类,你可以参考下,不保证正确哦
《JavaScript: The Good Parts》说过这个问题。如果你要自己来实现继承,那么有很多中做法,在 ES5 中,你可以直接用 Object.create(ES3 中需要自己实现,实现方式为 1# 的实现方式)来实现原型继承,不过原型继承理解起来并不直白(牵扯到一些容易混淆的概念,例如 Function.prototype、函数的 prototype 属性、通过构造函数构造的对象的原型对象等)。最直白的一种继承(且可以实现私有成员)是通过“模块模式”实现,无需使用到原型,详细你可以看看 http://name5566.com/4690.html 关于继承的那一部分。
@dlutwuwei
@perny
哈哈,大宗师道格拉斯就是这样实现Object.create函数的
如果我们可以使用__proto__
就更加简洁了:
function(supC){
return {'__proto__':supC}
}
但是这只是如果,不符合规范。哈哈 既然咱的大宗师已经写好了,咱就用吧.嘿嘿 但是Object.create()比new 的在性能上差的远了。:)
感谢你的解答,但是nodejs的工具模块中已经实现了继承util.inherits(sub,base);//就是这个方法,我是想知道怎样在不同的js文件实现相互继承
你的方法我试过,好像不行啊
node有自己的继承模块
util.inherits 的例子不是很清楚了吗