構(gòu)造函數(shù)有無返回值?

一般不需要,事實(shí)上可以有。

返回字符串

如下
Person() 這個構(gòu)造函數(shù)執(zhí)行以后返回字符串 doubi。這里是我隨便編的一個。
但是console.log(new Person())返回的是Person這個實(shí)例化的對象。這個和return沒啥關(guān)系。

<meta charset="utf-8">
<script>
function Person(){

    this.name="monster1935";
    this.age='24';
    this.sex="male";

    return "doubi";
}

console.log(Person());  //doubi
console.log(new Person());//Person {name: "monster1935", age: "24", sex: "male"}


image.png

如果返回值為引用類型

如下,返回的那玩意類型是引用類型。(數(shù)組, 對象, 函數(shù)等)。如果是值類型,返回obj。如果是引用類型,就返回這個引用類型的對象。(不是this對象)

function Person(){

    this.name="monster1935";
    this.age='24';
    this.sex="male";

    return {
        name:'Object',
        age:'12',
        sex:'female'
    }

}
console.log(Person());  //Object {name: "Object", age: "12", sex: "female"}
console.log(new Person());//Object {name: "Object", age: "12", sex: "female"}
image.png

總結(jié)

  1. return的是五種簡單數(shù)據(jù)類型:String,Number,Boolean,Null,Undefined。 這種情況下,忽視return值,依然返回this對象。
  2. return的是Object 這種情況下,不再返回this對象,而是返回return語句的返回值。

也就是說如果你return的是非引用類型的話。并沒有什么卵用。如果你返回一個對象,那么這個對象會替代構(gòu)造函數(shù)中的this

挺別扭但是so easy。

參考

關(guān)于Javascript中構(gòu)造函數(shù)返回值的問題 - 博客頻道 - CSDN.NET

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,675評論 0 4
  • 普通創(chuàng)建對象和字面量創(chuàng)建對象不足之處:雖然 Object 構(gòu)造函數(shù)或?qū)ο笞置媪慷伎梢杂脕韯?chuàng)建單個對象,但這些方式有...
    believedream閱讀 2,574評論 2 18
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評論 19 139
  • 有沒有這樣一個人,你愿意和他分享你所有的快樂,在他的面前展現(xiàn)你的調(diào)皮和狼狽,無條件不求回報的想為他付出一切,低谷時...
    一個Alan閱讀 940評論 0 0
  • 今天在611早睡早起王國得了一個雅名-成芋圓君/成玉元君。 覺察事實(shí): 611王國的統(tǒng)帥為了與時俱進(jìn)建議所有伙伴改...
    潔麗1688閱讀 230評論 3 1

友情鏈接更多精彩內(nèi)容