2013-04-21 115 views
2

我一直在讀通過JavaScript: The Good Parts,目前我在「第5章:繼承」一個當應選擇原型繼承VS功能繼承?

據我瞭解,使用功能繼承是首選,因爲它允許一個對象的屬性和變量,同時仍允許他們使用對象以外的方法被調用的隱私。然而,它似乎是有一個優勢原型繼承,因爲你可以很容易創建一個原型對象(這使得了解對象是什麼,對我來說,有點更具體)。

當我應該選擇一個比其他?我是否應該儘可能使用功能繼承?還是有我可以遵循的「更好的」指導方針來做出決定?

+0

我認爲他們是略有不同,但它似乎是這個問題涵蓋了很多的東西我要找的(即使用功能VS protoypal繼承問題)。我希望會有一個快速簡便的方法進行判斷,但顯然不是。 :) 感謝您的反饋。 – 2013-04-21 19:45:40

回答

3

我已經看到了使用功能的技術繼承的主要形式很少的代碼。我見過的絕大多數人使用原型繼承。它快速且易於實現,並且對JavaScript來說看起來很自然。

這並不是說功能繼承不應該被使用,但我認爲你會發現原型足以滿足大多數應用的需求。

讓我們不要忘記還有,你仍然可以使用您的原型繼承中的一些功能性的技術,如給每個對象它是關閉了在構造函數變量的函數的自己的版本。所以它不需要完全是一個或另一個。

最重要的是要了解原型和功能/關閉的概念。僅憑這一點就會給你你需要知道的信息,以便作出適當的決定。

+2

您可以通過[**本文**](http://www.richard-foy.fr/blog/2011/10/30/functional-inheritance-vs-prototypal-inheritance/) – plalx 2013-04-21 22:23:08

+0

@plalx這是有興趣一篇偉大的文章!這一點尤其重要,因爲我也學習CoffeeScript。 – 2013-04-21 23:10:29