1. 程式人生 > >對象中prototype與__proto__與從cinstructor的作用和區別

對象中prototype與__proto__與從cinstructor的作用和區別

image 數獨 繼承 什麽 技術 有一個 proto 是什麽 info

首先先要知道prototype什麽時間才會有

只有在創建函數的時候,每當函數創建的時候才會原型prototype,還有一個constructor,這個不是函數獨有的,對象也有

下面就來說說對象prototype與__prototype的區別

首先用函數構造器實例化一個對象,註意這裏實例化後的obj是沒有prototype的,

技術分享圖片

但是obj有__proto__ 那麽我們就來看看obj的__proto__與obj的constructor是什麽

技術分享圖片

技術分享圖片

這裏明顯可以看出obj.__proto__指向的是構造器fun的原型,obj.constructor指向的是函數構造器,也就可以判斷這個對象是那個函數構造器的實例化

另外還得出一個結論

技術分享圖片

那麽再來看看構造器的__proto__與consytuctor,以下的案例可以明顯的看出函數構造器fun指向的都是Function

技術分享圖片

通過以上的案例,下面我們來實現一個小小的繼承

技術分享圖片

首先obj1.__proto__指向的是fun的函數構造器的原型(fun.prototype)

fun.prototype指向的是o這個對象,o的__proto__指向的是Object.prptotype,Object的__proto__指向的是null,因為Object是頂級的

技術分享圖片

對象中prototype與__proto__與從cinstructor的作用和區別