2013-04-20 118 views
1

OK,让我们说我有这样一个构造函数:构造从构造继承

var Base = function() {}; 
Base.prototype.shmoo = function() { this.foo="shmoo"; } 

如何创建其他构造函数从它独立扩展Base和相互分开呢?

在延伸的派生构造的功能换句话说仅影响其目的和没有其他的,既不Base,既不另一个导出的一个。

我已经试过

Extender = function() {}; 
Extender.prototype = Base.prototype; 
Extender.prototype.moo = function() { this.moo="boo"; }; 

但生效随处可见,当然。

我应该模拟类层次?我试图远离那种模式。

+0

精确相同的问题[为什么我不能调用Javascript中一个原型的方法是什么?(http://stackoverflow.com /问题/ 12500637 /为什么-着-I-呼叫A-原型法式的JavaScript) – Bergi 2013-04-20 20:14:01

回答

1

这将实现原型继承(这是你想要的):

// The Extender prototype is an instance of Base but not Base's prototype  
Extender.prototype = new Base(); 

// Set Extender() as the actual constructor of an Extender instance 
Extender.prototype.constructor = Extender; 
+1

10X它的作品,因为它应该BR – kotio 2013-04-20 19:58:44

+0

[不使用'new'创建原型实例对象!] (http://stackoverflow.com/questions/12592913/what-is-the-reason-to-use-the-new-keyword-here) – Bergi 2013-04-20 20:04:57