[JS奇怪的世界]No.48 所有東西都是物件(或純值)

前言

現在我們知道物件原型,接著我們可以深入瞭解到一件事情 JavaScript 所有東西都是物件或是純值

數值、布林、字串、函數、陣列、物件他們都有原型,除了基本物件(base object)。

所有東西都是物件(或純值)

讓我們從範例來瞭解,接下將會利用這三個東西 物件、函數、陣列來講解為什麼所有東西都有原型。

1
2
3
var a = { };
var b = function() { };
var c = [];

首先讓我們試著在瀏覽器輸入以上範例,然後再輸入 a.__proto__

Image

我們會得到一個基本物件,這在原型鏈上非常底層,而這基本物件有屬性與方法。

Image

那函數呢?我們試著輸入 b.__proto__

Image

這就是所有函數的原型,所有我們建立的函數都有這個原型,當然也有相關的屬性與方法(你會看到熟悉的 apply、call、bind)。

Image

接下來是陣列 c.__proto__

Image

這就是一個原型陣列,我們也來看看它是否也有屬性與方法(這裡你也會看到許多熟悉的字眼)。

Image

所以由上面這三個範例我們可以知道一件事情。

JavaScript 所有物件、所有陣列及所有函數都有原型。

那這邊在講一個好玩的問題,原型的原型是什麼?

Image

是原型,所以我們要記得,原型鏈最底下的東西就是原型物件。

圖源

JavaScript 全攻略:克服 JS 奇怪的部分

Liker 讚賞 (拍手)

如果這一篇筆記文章對你有幫助,希望可以求點支持或 牡蠣 鼓勵 (ノД`)・゜・。

Liker 是一個按讚(拍手)的讚賞機制,每一篇文章最多可以按五下(拍手),按讚過程你是完全不用付費的(除非你想要每個月贊助我 :D),你只需要登入帳號就可以開始按讚。
而 Liker 會依據按讚數量分配獎金給創作者,所以如果你願意按個讚我會非常感謝你唷。

Google AD

撰寫一篇文章其實真的很花時間,如果你願意「關閉 Adblock (廣告阻擋器)」來支持我的話,我會非常感謝你 ヽ(・∀・)ノ