iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0

繼承與原型鍊

在面試中重複率非常高的考題就是 JavaScript 中的繼承與原型鍊啦,出現頻率大概有八成吧。這個比例來自我面試過的數據庫(僅供參考)。/images/emoticon/emoticon06.gif

其實它的原理就是 JavaScript 是一個物件導向(oop)的程式語言,了解 object 使用方法,其實你對繼承與原型鍊就會一半了。
這篇文章其實只是為了幫助我去更認識一下他們的原理。並不會特別去講用法,只是想了解用法的人可以轉台了,這篇文章不會特別提到。大家今天可以透過我的角度來認識下 轉職工程師是如何從先會用在慢慢把基礎漸漸抓回來的過程吧。

概念

繼承就是一個物件取用另一個物件的屬性或方法。而 JavaScript 的繼承是原型繼承,繼承的物件是透過原型鍊來連結其物件繼承的屬性及方法。
假設有 貓科 和 老虎 有兩個物件,讓 老虎 繼承 貓科,那麼 老虎 就可以使用 貓科 的屬性及方法,而 貓科 就是 老虎 的原型物件。有點類似生物學裡面界門綱目科屬種的概念

DevTool將物件Console 出來並且展開,就可以看到 __proto__,這就是原型物件。

透過繼承 ,我們可以重複使用或延伸原有程式碼,不用再次重複宣告。

原型鏈

而原型鏈的概念就是 每個物件都會有自己的 prototype 物件 ,老虎往上是貓科的概念。可以一直往上追朔,直到最上層物件的原型為 null 為止,而這樣一層層串起來的 prototype 就是原型鏈。

而當你尋找物件屬性時,此物件沒有則會往上層原型繼續尋找,直到找到或是回傳 undefined 為止


上一篇
useCallback - React 提升效能系列(三)
下一篇
結賽心得
系列文
前端技術研究30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言