js構(gòu)造函數(shù)內(nèi)部出現(xiàn)return會(huì)怎樣

一提到j(luò)s構(gòu)造函數(shù)芥颈,可能很多人都會(huì)想到構(gòu)造函數(shù)內(nèi)部最好不要出現(xiàn)return甚至不要出現(xiàn)return的警告語(yǔ)放案。
那么,假如js構(gòu)造函數(shù)內(nèi)部出現(xiàn)了return止状,又會(huì)怎樣呢?

js構(gòu)造函數(shù)內(nèi)部沒(méi)有return時(shí):

    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">
        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
        }
        var p = new People(3); 
    </script>
</body>
</html>

輸出一下p看看結(jié)果攒霹,如圖所示:

QQ圖片20170803190138.png

注意紅圈圈怯疤,顯示p對(duì)象的類型是People。

如果一:
如果在構(gòu)造函數(shù)內(nèi)部添加上一個(gè)return關(guān)鍵字會(huì)怎樣呢催束?

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return;
        }
        var p = new People(3); 

還是輸出一下p,結(jié)果如圖所示:

QQ圖片20170803190836.png

是不是沒(méi)有任何變化集峦?!所以抠刺,僅僅添加一個(gè)return關(guān)鍵字是沒(méi)有影響的塔淤。

如果二:
那如果return一個(gè)數(shù)字呢?

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return 1;
        }
        var p = new People(3); 

同上矫付,還是輸出p查看結(jié)果凯沪,如圖所示:

QQ圖片20170803191249.png

是不是有沒(méi)有任何變化?买优!那就是了妨马,return數(shù)字類型的也沒(méi)有影響。

如果三:
return一個(gè)字符串

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return "string";
        }
        var p = new People(3); 

結(jié)果:

QQ圖片20170803191711.png

結(jié)果和沒(méi)有添加return的時(shí)候是一樣的杀赢,即return字符串是沒(méi)有影響的烘跺。

如果四:
添加return undefined;

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return undefined;
        }
        var p = new People(3); 

結(jié)果如圖所示:


QQ圖片20170803192042.png

依然是沒(méi)有變化的,即return undefined;也是沒(méi)有影響的脂崔。

如果五:
添加return null;

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return null;
        }
        var p = new People(3); 

結(jié)果如圖所示:

QQ圖片20170803192338.png

對(duì)比發(fā)現(xiàn)滤淳,return null;也是沒(méi)有影響的。

如果六:
添加return {};

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return {};
        }
        var p = new People(3); 

結(jié)果如圖所示:

QQ圖片20170803192605.png

等等砌左,怎么顯示p的類型是Object,難道不應(yīng)該是People嗎脖咐?
是的铺敌,你沒(méi)有說(shuō)錯(cuò),p的類型應(yīng)該是People;但這里確實(shí)顯示的是Object屁擅。說(shuō)明添加return {}偿凭;是有影響的,把構(gòu)造函數(shù)內(nèi)部的this給替換了派歌。

如果七:
添加return function(){};

        var People = function(name,age,sex){
            this.name = name;
            this.age = age;
            this.sex =sex;
            return function(){};
        }
        var p = new People(3); 

結(jié)果如下:

QQ圖片20170803193253.png

p的類型變成了function,顯然受影響了弯囊。

綜上所述,有沒(méi)有發(fā)現(xiàn)問(wèn)題胶果?
構(gòu)造函數(shù)內(nèi)部?jī)H僅添加return關(guān)鍵字匾嘱,或者return的是數(shù)字、字符串早抠、null霎烙、undefined等值類型的數(shù)據(jù)的時(shí)候,使用new關(guān)鍵字執(zhí)行后對(duì)新產(chǎn)生的對(duì)象是沒(méi)有影響的贝或。
但是吼过,一旦構(gòu)造函數(shù)內(nèi)部return的是對(duì)象、函數(shù)等引用類型的數(shù)據(jù)咪奖,使用new關(guān)鍵字執(zhí)行后新對(duì)象的具體類型就被改變了。顯然酱床,正常情況下這并不是我們想要的結(jié)果羊赵。
而且,即使return值類型的數(shù)據(jù)不會(huì)改變新對(duì)象的具體類型扇谣,但也并沒(méi)有什么實(shí)際意義昧捷。
所以呢,js構(gòu)造函數(shù)內(nèi)部還是不要出現(xiàn)return比較好啦罐寨!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末靡挥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸯绿,更是在濱河造成了極大的恐慌跋破,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓶蝴,死亡現(xiàn)場(chǎng)離奇詭異毒返,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)舷手,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門拧簸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人男窟,你說(shuō)我怎么就攤上這事盆赤〖指唬” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵牺六,是天一觀的道長(zhǎng)祷安。 經(jīng)常有香客問(wèn)我,道長(zhǎng)兔乞,這世上最難降的妖魔是什么汇鞭? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮庸追,結(jié)果婚禮上霍骄,老公的妹妹穿的比我還像新娘。我一直安慰自己淡溯,他們只是感情好读整,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咱娶,像睡著了一般米间。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上膘侮,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天屈糊,我揣著相機(jī)與錄音,去河邊找鬼琼了。 笑死逻锐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雕薪。 我是一名探鬼主播昧诱,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼所袁!你這毒婦竟也來(lái)了盏档?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤燥爷,失蹤者是張志新(化名)和其女友劉穎蜈亩,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體局劲,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡勺拣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鱼填。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片药有。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愤惰,到底是詐尸還是另有隱情苇经,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布宦言,位于F島的核電站扇单,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏奠旺。R本人自食惡果不足惜蜘澜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望响疚。 院中可真熱鬧鄙信,春花似錦、人聲如沸忿晕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)践盼。三九已至鸦采,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咕幻,已是汗流浹背渔伯。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谅河,地道東北人咱旱。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像绷耍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲜侥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容