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

為了賬號安全,請及時綁定郵箱和手機立即綁定

關(guān)于new了之后的返回值情況

function?C(){
?		this.a?=?99;
?		return?{a?:90};
?		}
?
?		var?o?=?new?C();//s輸出的o?是這個結(jié)果Object?{a:?90}

看這個我試了一下之后,O的返回值就是前面函數(shù)里面的那個return里面的值

但是!?。】聪旅孢@個

function?foo(){

?			this.b?=?10+b;
?			return?this.a;
?		}
?		var?b?=?100;
?		var?l?=?new?foo();//輸出是foo?{b:?110}

為什么這里的返回的不是return里面的那個值???什么鬼

這兩個情況有什么區(qū)別?因為我就是看到老師那一節(jié)bind和new結(jié)合的那個看不太懂

正在回答

3 回答

new操作符應(yīng)該會影響this的值,同時,如果函數(shù)體里沒有return語句或者返回的是一個基本類型的值時,就將這個this的值作為返回值,但是返回的是一個對象,那么就將這個對象作為返回值返回。在這里,首先會創(chuàng)建一個新的對象,然后將這個this指向這個空對象,然后執(zhí)行b的語句操作,最后返回這個對象,這個對象包括了b的值。

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

前端小蝸牛_

就個人認(rèn)為,使用了new關(guān)鍵字去實例化一個函數(shù)時,壓根不會管你的返回值,如果沒有返回值,就直接創(chuàng)建一個新的空對象并進(jìn)行返回。。。。待大咖改正
2017-04-16 回復(fù) 有任何疑惑可以回復(fù)我~
#2

前端小蝸牛_ 回復(fù) 前端小蝸牛_

前提是不返回對象的情況...
2017-04-16 回復(fù) 有任何疑惑可以回復(fù)我~

用new之后,如果return 的是一個對象,例如第一個return{a:99},那么返回這個對象,如果return不是對象例如第二個return this.a那么會返回this,此時this會初始化為一個空對象。這個this.b?=?10+b;意思是把空對象this的b屬性設(shè)置為10+b.

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

因為之前return了一個b = 10+b;

如果new一個,前面已經(jīng)運行了一個全局變量b=100;所以l返回的foo的b是是100+10=110

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

深夏之葉 提問者

為什么不是返回的是a的值
2016-10-19 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

關(guān)于new了之后的返回值情況

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

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

幫助反饋 APP下載

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

公眾號

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