成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

《jQuery技術(shù)內(nèi)幕》一書(shū)中關(guān)于構(gòu)造函數(shù)返回值里的一句話如何理解?

網(wǎng)友解答: 首先要說(shuō)明的是,測(cè)試的是沒(méi)有問(wèn)題的,只是在書(shū)中描述不夠詳細(xì)導(dǎo)致了誤導(dǎo);而我認(rèn)為真正的描述應(yīng)該是:“如果構(gòu)造函數(shù)有顯式返回一個(gè)對(duì)象,運(yùn)算符new所創(chuàng)建的對(duì)象會(huì)被丟棄,返回值將作

網(wǎng)友解答:

首先要說(shuō)明的是,測(cè)試的是沒(méi)有問(wèn)題的,只是在書(shū)中描述不夠詳細(xì)導(dǎo)致了誤導(dǎo);而我認(rèn)為真正的描述應(yīng)該是:“如果構(gòu)造函數(shù)有顯式返回一個(gè)對(duì)象,運(yùn)算符new所創(chuàng)建的對(duì)象會(huì)被丟棄,返回值將作為new表達(dá)式的值”;

如果要真正的理解原因,首先我們得知道在js中,new到底是干什么用的,在背后又具體做了什么?

概念:new 運(yùn)算符創(chuàng)建一個(gè)用戶定義的對(duì)象類(lèi)型的實(shí)例或具有構(gòu)造函數(shù)的內(nèi)置對(duì)象的實(shí)例。

那么,當(dāng)使用new創(chuàng)建對(duì)象時(shí),發(fā)生了什么事情呢?以new Foo(...)為例:

1、一個(gè)繼承自Foo.prototype 的新對(duì)象被創(chuàng)建;

2、使用指定參數(shù)調(diào)用構(gòu)造函數(shù)Foo;并將this綁定到新創(chuàng)建的對(duì)象

3、由構(gòu)造函數(shù)返回的對(duì)象就是 new 表達(dá)式的結(jié)果。如果構(gòu)造函數(shù)沒(méi)有顯式返回一個(gè)對(duì)象,則使用步驟1創(chuàng)建的對(duì)象。一般情況下,構(gòu)造函數(shù)不會(huì)返回值,但是開(kāi)發(fā)人員也可以主動(dòng)返回一個(gè)對(duì)象去覆蓋正常默認(rèn)創(chuàng)建的對(duì)象;

所以,由上,我們可以簡(jiǎn)單猜測(cè)new運(yùn)算符的運(yùn)行如下函數(shù):

所以,綜上,書(shū)中描述應(yīng)該是當(dāng)構(gòu)造函數(shù)返回對(duì)象時(shí),如,對(duì)象、數(shù)組、函數(shù)等只要滿足_return instanceof Object為true的,都會(huì)進(jìn)行覆蓋;

標(biāo)簽: