好吧,假设我有一个像这样的构造函数:
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 :(得分: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;