非常佩服各平臺(tái)的推送功能,也不知道他們是怎么知道我對(duì)原型感興趣的,這幾天各種推送胸嘁。
看了看瓶摆,還是挺暈的凉逛,發(fā)現(xiàn)個(gè)問題性宏,越是專業(yè)的越是暈。
所以還不如來個(gè)外行的看著清晰状飞。所以來一個(gè)外行的圖:
總圖
感覺可以把Object.prototype 看著是一個(gè)基類毫胜,存放基礎(chǔ)的幾個(gè)方法。
因?yàn)?window.Object.prototype.proto 是 null诬辈,所以可以作為原型鏈的起點(diǎn)酵使。
Object 和 Function
- 先打印一下:
Object和Function
似乎好像沒啥區(qū)別。焙糟。口渔。
- 看看原型:
原型
對(duì)比一下原型,可以發(fā)現(xiàn)區(qū)別穿撮。缺脉。。
- 原型鏈
原型鏈
對(duì)比原型鏈悦穿,可以發(fā)現(xiàn) Object 是 Function 的“基類”
Function
那么 Function 是個(gè)啥呢攻礼?
可以把 Function 本身當(dāng)做一種方法,可以直接執(zhí)行一些指令栗柒,也可以看做是一個(gè)創(chuàng)建過程礁扮,創(chuàng)建的結(jié)果是啥呢?當(dāng)然就是 Object 的對(duì)象瞬沦。好吧太伊,我不知道這個(gè)應(yīng)該如何描述。
我們可以用 typeof 驗(yàn)證一下:
function fun1 () {}
console.log(typeof fun1)
console.log(typeof fun1())
驗(yàn)證
fun1的 type 是 Function逛钻。
fun1的運(yùn)行結(jié)果僚焦,由于沒有返回值(return)所以是 undefined。
- 再來看看 fun1 的原型
fun1的原型
首先 fun1 有一個(gè)自己的原型绣的,然后原型鏈指向 Object 的原型叠赐。可以看做是一個(gè)“繼承”的關(guān)系屡江。
未完待續(xù)芭概。。惩嘉。