我知道有很多类似的问题都是对这个很好的答案。我试图看看经典的继承方法,或者那些闭包方法等。不知何故,我认为它们对我来说或多或少是“黑客”方法,因为它实际上并不是JavaScript所设计的。 (欢迎有人纠正我,如果我错了)。 OK,只要它的作品,我满足与像经典的遗传模式:JavaScript的继承
PARENTClass = function (basevar) { do something here; };
PARENTClass.prototype = { a: b, c: d}; // prototype is auto gen
// Inheritance goes here
CHILDClass = function (childvar) { do something; };
CHILDClass.prototype = new PARENTClass(*1); // Actual inheritance to the prototype statement
// Instance
CHILDInstance = new CHILDClass(whatever);
以上是莫名其妙,我的理解JS的继承。但是,我不知道如何实现的一个场景是,如果我想做一些初始化DURING对象创建(即在构造函数中),并且可以立即使用新对象......我对问题的示例可能不会太清楚,所以让我用下面的C#的伪解释什么是我想要做的:(像初始化UI元素)
class PARENT {
public PARENT (basevar) { ... }
}
class CHILD : PARENT {
public CHILD (basevar) : PARENT (basevar) // constructor of child, and call parent constructor during construct.
{ ... }
}
出于某种原因,他们将在构造函数中似乎做的最好办法。任何人都有想法,我该怎么做。 PS:在* 1中,我不知道我应该放在那里。 PS2:上面的情况我DID找到了jquery.inherit库可以做的,我只是想知道是不是用库可以实现它。 PS3:或者我的理解错误。由于JavaScript不是为了模仿OOP(这就是为什么我称之为破解),什么是“正确”的逻辑来实现这一点。
检查了这一点:http://stackoverflow.com/questions/7486825/javascript-inheritance/12816953#12816953 – 2012-10-10 10:35:54
使用的Object.create()继承从基类的原型。通过这种方式,基类的变化会波及到子类,而不是相反。在我的博客上的更多详细信息:http://ncombo.wordpress.com/2013/07/11/javascript-inheritance-done-right/ – Jon 2013-07-11 13:47:13