一篇介紹Javascript繼承的好文章

 Sat, 29 Sep 2007 14:39:21 +0800

原文出處:Classical Inheritance in JavaScript,作者是Douglas Crockford。

他的結論是,基於Javascript語言的高度彈性,它的繼承與傳統的類別式繼承不同,所以必須用不同的思維來使用這個語言。主要的方向是避免深度的繼承,而用彈性的方法解決類別式繼承必須透過子類別才能解決的問題。例如物件的函數需要調整,簡單地透過assign一個新的函數給它就可以了。

作者在文中提到五種繼承的pattern:Classical Inheritance, Multiple Inheritance, Parasitic Inheritance, Class Augmentation, Object Augmentation。並且透過在Function物件增加幾個簡單的函數,就可以實作以上幾種繼承模式。這些方法很有用,舉例來說,我在google feed api裡面就有看到用了他的方法。