課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
function?A()?{} A.prototype.a?=?1; var?a?=?new?A(); a.b?=?2; for?(i?in?a)?{ console.log(i) }
2017-05-28
源自:JavaScript深入淺出 3-3
正在回答
運(yùn)行時(shí)會(huì)先去本體的屬性中去找,然后再去prototype中尋找。
針對你的代碼:
function?A()?{} x?=?1; var?a?=?new?A(); a.b?=?2; for?(i?in?a)?{ console.log(i) }
這里a中屬性只有你自己添加的b,所以肯定只會(huì)打印出b
今世緣0 提問者
prototype 是一個(gè)可以向?qū)ο筇砑訉傩曰蛘叻椒ǖ膶傩?,如果不用它,淡村的a=1,只是說明你定義了一個(gè)單個(gè)變量而已,所以肯定在輸出實(shí)例化的A()方法時(shí)不會(huì)輸出a
function?A()?{} A.prototype.a?=?1; var?aa?=?new?A(); document.write(aa.a);//aa是方法A()的示例,擁有使用?prototype?屬性來向?qū)ο筇砑拥膶傩詀,輸出1 aa.b?=?2; document.write(aa.b);//在給aa添加了一個(gè)b的屬性后,輸出b的值2 //運(yùn)行時(shí)會(huì)先去本體的屬性中去找,然后再去prototype中尋找,所以先輸出b,后輸出a for?(i?in?aa)?{ ????document.write(i); }
function?A()?{} x?=?1; var?a?=?new?A(); a.b?=?2; for?(i?in?a)?{ console.log(i) } 這樣子怎麼只能打印出b???
我貌似知道了,不是因?yàn)轫樞虿淮_定。是因?yàn)樗葧?huì)去找它自身擁有的屬性,然后再去找原型鏈上的屬性,是這樣吧?還是因?yàn)槠渌颍?/p>
用一張課程截圖給你解釋吧
舉報(bào)
由淺入深學(xué)習(xí)JS語言特性,且解析JS常見誤區(qū),從入門到掌握
3 回答foreach(),括號(hào)中的a as b,我怎么理解
7 回答function內(nèi),var a = b = 1; b 為什么會(huì)是全局變量?
5 回答我兩個(gè)打印出來的都是number ,為什么?
4 回答如果我改成var o={a:37,f:f(),g:g()},g是可以打印出來的,f卻是undefined,為什么?
3 回答我什么能打印 。
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-05-28
運(yùn)行時(shí)會(huì)先去本體的屬性中去找,然后再去prototype中尋找。
針對你的代碼:
這里a中屬性只有你自己添加的b,所以肯定只會(huì)打印出b
2017-05-28
prototype 是一個(gè)可以向?qū)ο筇砑訉傩曰蛘叻椒ǖ膶傩?,如果不用它,淡村的a=1,只是說明你定義了一個(gè)單個(gè)變量而已,所以肯定在輸出實(shí)例化的A()方法時(shí)不會(huì)輸出a
2017-05-28
2017-05-28
2017-05-28
我貌似知道了,不是因?yàn)轫樞虿淮_定。是因?yàn)樗葧?huì)去找它自身擁有的屬性,然后再去找原型鏈上的屬性,是這樣吧?還是因?yàn)槠渌颍?/p>
2017-05-28
用一張課程截圖給你解釋吧