注冊網(wǎng)站到公安機關(guān)備案由誰告知seo關(guān)鍵詞排名優(yōu)化要多少錢
一、prototype
每一個構(gòu)造函數(shù)身上又有一個prototype指向其原型對象。
如果我們在控制臺輸入如下代碼,就能看到Vue構(gòu)造函數(shù)的信息,在他身上可以找到prototype屬性,指向的是Vue原型對象:
二、__proto__
通過構(gòu)造函數(shù)創(chuàng)建的實例對象身上有一個__proto__屬性,指向構(gòu)造函數(shù)的原型對象。
vm就是我們通過new Vue() 構(gòu)造出來的實例對象,他身上的__proto__指向的就是上面的原型對象:
可以使用下圖說明Vue構(gòu)造函數(shù)的prototype和vm實例對象上__proto__的關(guān)系:
三、VueComponent和VC的原型
當我們使用Vue.extend() 去創(chuàng)建一個組件的時候,Vue會自動幫我們?nèi)フ{(diào)用VueComponent構(gòu)造函數(shù),我們使用VueComponent構(gòu)造函數(shù)就可以構(gòu)造出實例對象VC(組件)。
因此我們可以得到如下關(guān)系圖:
接下來就要探討一個問題:這個VueComponent的原型對象本應該指向Object原型。
但是,Vue將這條線指向了Vue原型對象(藍色的線):
?
所以可以得出以下結(jié)論:
?VueComponent.prototype.__proto__ === Vue.prototype
目的就是為了讓組件實例對象VC訪問到Vue對象原型身上的屬性和方法。?