第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

js怎么設(shè)置一個(gè)對(duì)象的prototype

js怎么設(shè)置一個(gè)對(duì)象的prototype

慕妹3146593 2018-10-11 18:23:04
查看MDN上繼承與原型鏈這篇文章時(shí),照著例子敲了下,結(jié)果發(fā)現(xiàn)當(dāng)直接寫(xiě)o.prototype = oo時(shí)結(jié)果不是和上面說(shuō)的一樣。后來(lái)改為用Object.create(oo,{//屬性特征對(duì)象...})后結(jié)果對(duì)了。想問(wèn),o.prototype = oo的寫(xiě)法是錯(cuò)誤的么?另外o.prototype === oo 和Object.getPrototypeOf(o) === oo 怎么得出的結(jié)果不同呢?附測(cè)試代碼:
查看完整描述

1 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊

o.prototype = oo應(yīng)該是o.__proto__ (書(shū)里可能是這么寫(xiě)的[[Prototype]])= oo;

console.log(o.prototype === oo);//這里怎么和getPrototypeOf()得到的結(jié)果不同呢?

同樣這也應(yīng)該是o.__proto__ === oo
getPrototypeOf()的意思是獲取目標(biāo)對(duì)象的原型對(duì)象。
o.prototype是獲取o對(duì)象的prototype屬性,是undefined,你要明白實(shí)例的隱式原型__proto__指向其原型對(duì)象,而直接訪問(wèn)實(shí)例的原型對(duì)象屬性是訪問(wèn)不到的。

原型鏈的查找過(guò)程也是先查找自身,再去自身的__proto__屬性指向的對(duì)象查找。
比如:a是A的實(shí)例。a.b1.先在自身查找b屬性,無(wú)。查找a.__proto__;
2.a.__proto__指向A.prototype;
3.在A.prototype上查找b屬性,無(wú)。查找A.prototype.__proto__;
4.因?yàn)锳.prototype是對(duì)象,則是對(duì)象構(gòu)造函數(shù)Object的實(shí)例,所以A.prototype.__proto__指向Object.prototype;
5.在Object.prototype上查找b屬性,無(wú)則不找返回undefined;
6.為什么不找了呢,可以這么理解,Object.prototype是對(duì)象構(gòu)造函數(shù)Object的實(shí)例,又返回第四條了,所以O(shè)bject.prototype無(wú)__proto__屬性。

所有函數(shù)的__proto__都默認(rèn)指向Function(){}的prototype;
所有對(duì)象的__proto__都默認(rèn)指向Object(){}的prototype;(上邊的第4步)


補(bǔ)充:函數(shù)才有prototype屬性,普通對(duì)象只有__proto__,此屬性的內(nèi)容是實(shí)例的原型對(duì)象。實(shí)例的__proto__指向此原型對(duì)象。

寫(xiě)的有點(diǎn)亂。


查看完整回答
反對(duì) 回復(fù) 2018-11-09
  • 1 回答
  • 0 關(guān)注
  • 708 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)