3 回答

TA貢獻(xiàn)158條經(jīng)驗(yàn) 獲得超188個(gè)贊
1、new出來(lái)的實(shí)例對(duì)象其 __proto__ 指向其構(gòu)造函數(shù)的prototype,即:
a.__proto__?===?A.prototype?//?true
2、a.__proto__ 和 A.prototype 指向同一個(gè)對(duì)象,這個(gè)對(duì)象有一個(gè) constructor 屬性,其指向構(gòu)造函數(shù)A本身。所以上面的也可以這樣寫(xiě):
a.__proto__?===?a.constructor.prototype?//?true //??????????????這里a本身是沒(méi)有constructor這個(gè)屬性的,所以會(huì)訪問(wèn)a.__proto__.constructor
3、然后是 prototype 這個(gè)屬性是只有函數(shù)對(duì)象才有的,一般的對(duì)象并沒(méi)有這個(gè)屬性,而對(duì)象的 __proto__ 所指向的還是一個(gè)普通的對(duì)象,整條原型鏈上的對(duì)象都不會(huì)有prototype屬性,所以就有了 a.prototype == undefined。

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超5個(gè)贊
是你搞錯(cuò)了,在這里a是沒(méi)有prototype的,prototype是構(gòu)造器的原型,而a是通過(guò)構(gòu)造器(new)產(chǎn)生的對(duì)象,這里A是構(gòu)造器,a是new出來(lái)的對(duì)象,所以正確的是這樣
a.__proto__==A.prototype ? //true ? 這個(gè)可以自己在瀏覽器的控制臺(tái)試
也就是說(shuō)構(gòu)造器才有prototype,所有對(duì)象都有__proto__,這個(gè)可以控制臺(tái)一個(gè)一個(gè)往下試。
添加回答
舉報(bào)