JavaScript 何謂物件原型 (prototype)

何謂物件原型 (prototype)

每個 JavaScript 物件都會有 第二個 JavaScript 的物件與之關聯,而這個第二個的 JavaScript 物件就被稱呼為 “物件原型”

而第一個物件就是從這個原型來繼承特性

參考方式:

JavaScript 中我們使用下列方式來參考原型物件

Object.prototype

且像是 ECMADscript 定義的 Native(原生)物件:Object() 、 Date() 、 Array() … 也都具有著 prototype 的原型物件

而當我們使用 new建構式(constructor) 所產生的新物件:

new Date();

其原型就為 建構式(constructor) 的 prototype 特性,也就是:

Date.prototype

另外一提:

Object.prototype 是 Javascript 中唯一沒有原型的物件,Object.prototype沒有繼承任何特性,其餘的物件則都有繼承 Object.prototype的屬性:

我們以 Date()物件為例:

object.prototype

//  ⇩⇩ 給予繼承

date.prototype

//  ⇩⇩ 給予繼承

new date()

如上所示:

我們使用 new date() 產生出的 date物件同時繼承了 date.prototype 物件與 object.prototype 物件的特性,這些串成衣系列的原型物件則稱之為 “原型鏈(prototype chain) “