【JavaScript】物件範本:Constructor Function

Tina
Apr 7, 2021

--

建構式函式特質:

  1. 函式首字名稱使用大寫,辨認函式是個 constructor。
    (使用小寫不會出錯,但不符合慣例)
    EX:SmartPhone(name, price){}
  2. 建構式函式不能用 return 指定要回傳其他內容,若加上 return,就只會回傳指定內容,而不會回傳一個新物件。
  3. 在呼叫函式時需加上 new
    EX: let phone_A = new SmartPhone(S100, 20000){}
  4. phone_A 代表 實例 (instance)
  5. 若不知道建構是韓式的名稱,則可以用 console.log(phone_A.constructor.name) //SmartPhone

原型繼承

繼承 (inheritance)」V.S. 原型繼承 (prototypal inheritance)

  • 在 JavaScript 裡,「繼承」是「讓一個物件取得另一個物件的屬性與方法」
  • JavaScript 的繼承系統會透過原型鍊 (prototype chain) 來連接到其他物件的功能,與「classical inheritance」的系統略有不同 (e.g. 沒有拷貝程式碼),因此稱為「原型繼承」。

如何在原型鏈中尋找屬性與方法

目標:
let name = ‘abcd’
當我們輸入 name.length()時JS會做些什麼
  1. 查看name本身是否有這個method =>沒有
  2. 從name 的 prototype(原型)去找 =>確認 String.protype 中有
  3. 根據String.protype的函式設計去執行這個method

如何查看原型:使用 Object.getPrototypeOf()

--

--

Tina
Tina

Written by Tina

前端工程師 Mix 數位行銷人

No responses yet