成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

構(gòu)造函數(shù)小記

cangck_X / 2397人閱讀

摘要:也就是說(shuō)這個(gè)變量,保存的內(nèi)存地址就是,同時(shí)被標(biāo)記為的實(shí)例以上就是構(gòu)造函數(shù)的整個(gè)執(zhí)行過(guò)程。

前言算是

當(dāng)一個(gè)函數(shù)創(chuàng)建好以后,我們并不知道它是不是構(gòu)造函數(shù)(構(gòu)造函數(shù)習(xí)慣上首字母大寫(xiě)),只有當(dāng)一個(gè)函數(shù)以 new 關(guān)鍵字來(lái)調(diào)用的時(shí)候,我們才能說(shuō)它是一個(gè)構(gòu)造函數(shù)

eg:
    function Person (name, age) {
   this.name = name;
   this.age = age;
  }

var per1 = new Person("yuchen", 22);
構(gòu)造函數(shù)的執(zhí)行流程:

當(dāng)以 new 關(guān)鍵字調(diào)用時(shí),會(huì)創(chuàng)建一個(gè)新的內(nèi)存空間

函數(shù)體內(nèi)部的 this 指向該內(nèi)存"也就是Person的實(shí)例"

        * 每當(dāng)創(chuàng)建一個(gè)實(shí)例的時(shí)候,就會(huì)創(chuàng)建一個(gè)新的內(nèi)存空間(#f2, #f3),
        * 創(chuàng)建 #f2 的時(shí)候,函數(shù)體內(nèi)部的 this 指向 #f2, 
        * 創(chuàng)建 #f3 的時(shí)候,函數(shù)體內(nèi)部的 this 指向 #f3。

執(zhí)行函數(shù)體內(nèi)的代碼
(給 this 添加屬性,就相當(dāng)于給實(shí)例添加屬性)

默認(rèn)返回 this
由于函數(shù)體內(nèi)部的 this 指向新創(chuàng)建的內(nèi)存空間,默認(rèn)返回 this ,就相當(dāng)于默認(rèn)返回了
該內(nèi)存空間,也就是上圖中的 #f1。此時(shí),#f1的內(nèi)存空間被變量 p1 所接受。也就是說(shuō)
p1 這個(gè)變量,保存的內(nèi)存地址就是 #f1,同時(shí)被標(biāo)記為 Person 的實(shí)例

以上就是構(gòu)造函數(shù)的整個(gè)執(zhí)行過(guò)程。

構(gòu)造函數(shù)的返回值

構(gòu)造函數(shù)執(zhí)行過(guò)程的最后一步是默認(rèn)返回 this,構(gòu)造函數(shù)的返回值還有其它情況

           (1) )沒(méi)有手動(dòng)添加返回值,默認(rèn)返回 this 
                function Person1() {
                  this.name = "zhangsan";
                }
                var p1 = new Person1();
                
                p1: {
                  name: "zhangsan"
                }
            (2) 手動(dòng)添加一個(gè)基本數(shù)據(jù)類型的返回值,最終還是返回 this
                function Person2() {
                  this.age = 28;
                  return 50;
                }
                var p2 = new Person2();
                console.log(p2.age);   // 28
                
                p2: {
                  age: 28
                }
                注意:如果上面是一個(gè)普通函數(shù)的調(diào)用,那么返回值就是 50 ?。?!
        (3) 手動(dòng)添加一個(gè)復(fù)雜數(shù)據(jù)類型(對(duì)象)的返回值,最終返回該對(duì)象
                  例一:
                   function Person3() {
                      this.height = "180";
                      return ["a", "b", "c"];
                    }

                    var p3 = new Person3();
                    console.log(p3.height);  // undefined
                    console.log(p3.length);  // 3
                    console.log(p3[0]);      // "a"
                例二:
                    function Person4() {
                      this.gender = "男";
                      return { gender: "中性" }
                    }

                    var p4 = new Person4();
                    console.log(p4.gender);  // "中性"
            

// 構(gòu)造函數(shù)基礎(chǔ)點(diǎn)學(xué)習(xí)完畢啦~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105870.html

相關(guān)文章

  • JDK1.8 ArrayList部分源碼分析小記

    摘要:部分源碼分析小記底層數(shù)據(jù)結(jié)構(gòu)底層的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組元素類型為類型,即可以存放所有類型數(shù)據(jù)。初始容量大于初始化元素?cái)?shù)組新建一個(gè)數(shù)組初始容量為為空對(duì)象數(shù)組初始容量小于,拋出異常無(wú)參構(gòu)造函數(shù)。 JDK1.8 ArrayList部分源碼分析小記 底層數(shù)據(jù)結(jié)構(gòu) 底層的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組,數(shù)組元素類型為Object類型,即可以存放所有類型數(shù)據(jù)。我們對(duì)ArrayList類的實(shí)例的所有的操作底層都...

    王軍 評(píng)論0 收藏0
  • javascript小記

    摘要:模板字面量相當(dāng)于格式化字符串字符串用兩個(gè)包含起來(lái)并且內(nèi)部的占位符用標(biāo)識(shí)一般用于標(biāo)識(shí)多行文本或者配合函數(shù)使用與箭頭函數(shù)用于數(shù)組是用于讓數(shù)組每一個(gè)元素都調(diào)用函數(shù)的語(yǔ)法基本格式為其中為數(shù)組元素下標(biāo)為當(dāng)前元素所屬的數(shù)組對(duì)象在實(shí)際調(diào)用時(shí)只需要箭頭函數(shù) 1.模板字面量相當(dāng)于格式化字符串,字符串用兩個(gè)``包含起來(lái),并且內(nèi)部的占位符用${variable}標(biāo)識(shí).一般用于標(biāo)識(shí)多行文本或者配合函數(shù)使用. ...

    waltr 評(píng)論0 收藏0
  • 面向?qū)ο?em>小記

    摘要:面向?qū)ο笤兔嫦驅(qū)ο笙腴_(kāi)一個(gè)車,你不需要自己去造一個(gè)車,只需要一把鑰匙,車對(duì)于你來(lái)說(shuō)就是一個(gè)對(duì)象。使用構(gòu)造函數(shù)模式和原型模式組合初學(xué)筆記,個(gè)人記錄備忘,如有謬誤,歡迎指正。 面向?qū)ο蟆⒃?面向?qū)ο?想開(kāi)一個(gè)車,你不需要自己去造一個(gè)車,只需要一把鑰匙,車對(duì)于你來(lái)說(shuō)就是一個(gè)對(duì)象。在JavaScript中的對(duì)象, 具有屬性,當(dāng)屬性的值是一個(gè)函數(shù)時(shí),那么此屬性就是這個(gè)對(duì)象的方法.訪問(wèn)屬性的方...

    mmy123456 評(píng)論0 收藏0
  • 幾道前端面試題小記

    摘要:全局環(huán)境調(diào)用函數(shù)的對(duì)象實(shí)際為,所以函數(shù)內(nèi)的指向構(gòu)造函數(shù)通過(guò)構(gòu)造函造函數(shù)生成了一個(gè)新對(duì)象,指向這個(gè)新對(duì)象。學(xué)習(xí)前端一個(gè)月,上一周面試了大概多家,收獲的卻是寥寥。為了效率,前端各方面的內(nèi)容都有涉獵,深度卻相當(dāng)不足,面試時(shí)暴露各種問(wèn)題。 最近面試了不少家,苦于前端經(jīng)驗(yàn)薄弱,被各種血虐。做了不少家面試題,把各種不會(huì)的回來(lái)再做一遍,作為經(jīng)驗(yàn)總結(jié)吧。 1.如何最優(yōu)性能去重一個(gè)數(shù)組? 方法有好多,比...

    tulayang 評(píng)論0 收藏0
  • 幾道前端面試題小記

    摘要:全局環(huán)境調(diào)用函數(shù)的對(duì)象實(shí)際為,所以函數(shù)內(nèi)的指向構(gòu)造函數(shù)通過(guò)構(gòu)造函造函數(shù)生成了一個(gè)新對(duì)象,指向這個(gè)新對(duì)象。學(xué)習(xí)前端一個(gè)月,上一周面試了大概多家,收獲的卻是寥寥。為了效率,前端各方面的內(nèi)容都有涉獵,深度卻相當(dāng)不足,面試時(shí)暴露各種問(wèn)題。 最近面試了不少家,苦于前端經(jīng)驗(yàn)薄弱,被各種血虐。做了不少家面試題,把各種不會(huì)的回來(lái)再做一遍,作為經(jīng)驗(yàn)總結(jié)吧。 1.如何最優(yōu)性能去重一個(gè)數(shù)組? 方法有好多,比...

    yhaolpz 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<