VueComponent 原型 和Vue原型之間的關(guān)系

//原型對象和java對象的靜態(tài)變量類似,java中只要靜態(tài)變量用public static 修飾,就可以用 類名/實例名 來 訪問/定義(當然如果在類內(nèi)部權(quán)限修飾符也沒有意義),
// 只是java中可以用類名直接訪問靜態(tài)變量,但是在Js中只能用構(gòu)造函數(shù)名+prototype來訪問,而對象實例可以用對象名直接訪問,或者加__proto__ 但是不能用d.prototype訪問
// 另外 js的 原型是一個對象
首先要知道,構(gòu)造函數(shù)(對象) 都是有原型 prototype 的,而 構(gòu)造函數(shù)實例(對象實例) 有?__proto__,?
這兩者都指向 構(gòu)造函數(shù)的原型對象,
構(gòu)造函數(shù)的


VueComponent.prototype.__proto__ = Vue.prototype?
function Demo(){}; const d = new Demo();
Demo.prototype 和 d.__proto__指向同一個對象, 這個對象 是Object的實例對象
所有對象的原型對象都是Object對象的實例,
但是VueComponent除外,VueComponent的原型對象? __proto__ 指向Vue 的原型對象。
隱式原型鏈。 vc.__proto__ -> VueComponent的原型對象 -> Vue 的原型對象 -> Object的原型對象。
這點表述的不是特別明白,是怎么實現(xiàn)轉(zhuǎn)VueComponent的原型對象的指向;
這是因為VueComponent的原型對象是類是Vue,但是Vue的原型對象的類是 匿名的。

vue.js的源代碼如下示
VueComponent的實例 通過Vue.extend來實現(xiàn),
在VueComponent的實例創(chuàng)建完成后,其prototype就手動指向了 Vue的原型對象

其它普通類型的原型對象的類型都是 匿名的

我們也可以手動修改普通對象的 原型對象的 類型?

修改后也能 d.x 的值是 x了
