我知道有很多類似的問題都是對這個很好的答案。我試圖看看經典的繼承方法,或者那些閉包方法等。不知何故,我認爲它們對我來說或多或少是「黑客」方法,因爲它實際上並不是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