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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定

請問為什么是打印出b,a啊,解釋下原理。

function?A()?{}
A.prototype.a?=?1;
var?a?=?new?A();
a.b?=?2;
for?(i?in?a)?{
console.log(i)
}


正在回答

6 回答

運(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 回復(fù) 有任何疑惑可以回復(fù)我~
#1

今世緣0 提問者

function A() { x = 1; } var a = new A(); a.b = 2; for (i in a) { console.log(i) } 這樣怎麼也是只有b呢?
2017-05-28 回復(fù) 有任何疑惑可以回復(fù)我~

prototype 是一個(gè)可以向?qū)ο筇砑訉傩曰蛘叻椒ǖ膶傩?,如果不用它,淡村的a=1,只是說明你定義了一個(gè)單個(gè)變量而已,所以肯定在輸出實(shí)例化的A()方法時(shí)不會(huì)輸出a

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

今世緣0 提問者

剛剛少說一句,應(yīng)該是把a(bǔ)=1放在函數(shù)內(nèi)。 即: function A() { x = 1; } var a = new A(); a.b = 2; for (i in a) { console.log(i) }
2017-05-28 回復(fù) 有任何疑惑可以回復(fù)我~
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);
}


2 回復(fù) 有任何疑惑可以回復(fù)我~
#1

今世緣0 提問者

恩恩,懂了,謝謝,還有個(gè)問題,能一起幫我解決了嗎?就是把A.prototype.a=1變成a=1為什么又只有b輸出呢?
2017-05-28 回復(fù) 有任何疑惑可以回復(fù)我~
function?A()?{}
x?=?1;
var?a?=?new?A();
a.b?=?2;
for?(i?in?a)?{
console.log(i)
}

這樣子怎麼只能打印出b???


0 回復(fù) 有任何疑惑可以回復(fù)我~

我貌似知道了,不是因?yàn)轫樞虿淮_定。是因?yàn)樗葧?huì)去找它自身擁有的屬性,然后再去找原型鏈上的屬性,是這樣吧?還是因?yàn)槠渌颍?/p>

0 回復(fù) 有任何疑惑可以回復(fù)我~

用一張課程截圖給你解釋吧http://img1.sycdn.imooc.com//592aa1570001787312740588.jpg

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

請問為什么是打印出b,a啊,解釋下原理。

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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