前言
老樣子,在進入新的觀念之前,都會先解釋某些特定名詞的意思,避免聽不懂講師再說什麼,本篇之後將進入 JavaScript 相當受歡迎也很困難的概念,我們要討論 JavaScript 的物件導向和原型繼承。
繼承 (Inheritance)
繼承表示「一個物件取用另一個物件的屬性或方法」,當然這在不同的程式語言間可能是不太一樣的,但對我們來說只要了解基本的概念就好。
古典繼承 (Classical Inheritance)
古典繼承在 C# 以及 Java 內都有相同的概念,這可以分享物件的方法和屬性。
當然古典繼承也並非完美,舉例來說,當我們已經建立很多大型的物件,這些物件互相繼承彼此的屬性、方法,最終會得到一個很大的集合。
整體上來看這個大集合變成像是很多樹狀的物件在互動,這種情況下會很難搞清楚彼此之間的關連。
而古典繼承也有很多不同的關鍵字,像是:
- friend
- protected
- private
- interface
需要個別搞懂不同關鍵字是什麼意思,並且使用它們。
原型繼承 ( Prototypal Inheritance )
相較於古典繼承而言,原型繼承具有這些特點:
- 彈性 (flexible)
- 可擴充性 (extensible)
- 簡單易懂 (east to understand)
當然原型繼承也不是個完美的東西,和古典繼承一樣都是有好有壞的。