1

好的,假设我有一个像这样的构造函数:

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"; };

但这当然会在任何地方生效。

我应该模拟类层次结构吗?我试图远离这种模式。

4

1 回答 1

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; 
于 2013-04-20T19:48:39.363 回答