1. 程式人生 > 實用技巧 >JS高階之顯式原型和隱式原型

JS高階之顯式原型和隱式原型

顯式原型和隱式原型

  • 每個函式function都有一個prototype,即顯式原型(屬性)
  • 每個例項物件都有一個__proto__,可稱為隱式原型(屬性)

例子:

在這裡插入圖片描述

  • 物件的隱式原型的值為其對應建構函式的顯式原型的值

例子:

在這裡插入圖片描述

  • 記憶體結構

例子:

在這裡插入圖片描述

圖:

在這裡插入圖片描述

  • 總結:
  1. 函式的prototype屬性:在定義函式時自動新增的,預設值是一個空Object物件
  2. 物件的__proto__屬性: 建立物件時自動新增的,預設值是建構函式的prototype屬性值
  3. 程式設計師能直接操作顯式原型,但不能直接操作隱式原型(ES6之前)