iT邦幫忙

2021 iThome 鐵人賽

DAY 10
0

大家好!

今天只會簡單介紹原型的繼承關係,當我們介紹完原型鏈後,就會詳細說明繼承的方法。
我們出發吧!


原型繼承

物件的 valueOf 方法是位於 Object 的原型:

/* 檢查 {} 指向的原型是否為 Object 的原型 */
({}).valueOf === Object.prototype.valueOf; // true
Object.prototype.isPrototypeOf({}); // true
Object.getPrototypeOf({}) === Object.prototype; // true

那麼,陣列的 valueOf 方法也是位於 Array 的原型嗎?

([]).valueOf === Array.prototype.valueOf; // true
([]).valueOf === Object.prototype.valueOf; // true

怎麼會這樣,陣列的 valueOf 方法究竟是位於哪裡?
事實上,陣列的 valueOf 方法位於 Object 的原型,因為 Array 的原型並沒有 valueOf 方法。

Array.prototype.valueOf === Object.prototype.valueOf; // true

/* 檢查 Array.prototype 是否有 valueOf 屬性 */
Array.prototype.hasOwnProperty('valueOf'); // false

/* 測試 Array.prototype 指向的原型是否為 Object.prototype */
Object.getPrototypeOf(Array.prototype) === Object.prototype; // true

這樣就能知道 Array 的原型所指向的原型就是 Object 的原型,也就是 Array 繼承了 Object


各位對於「繼承」會如何解釋呢?

差不多也到尾聲了。
如果對文章有任何疑問,歡迎於下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 09 - 類別函式
下一篇
JS 11 - 原型鏈
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言