国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

構造函數小記

cangck_X / 2375人閱讀

摘要:也就是說這個變量,保存的內存地址就是,同時被標記為的實例以上就是構造函數的整個執行過程。

前言算是

當一個函數創建好以后,我們并不知道它是不是構造函數(構造函數習慣上首字母大寫),只有當一個函數以 new 關鍵字來調用的時候,我們才能說它是一個構造函數

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

var per1 = new Person("yuchen", 22);
構造函數的執行流程:

當以 new 關鍵字調用時,會創建一個新的內存空間

函數體內部的 this 指向該內存"也就是Person的實例"

        * 每當創建一個實例的時候,就會創建一個新的內存空間(#f2, #f3),
        * 創建 #f2 的時候,函數體內部的 this 指向 #f2, 
        * 創建 #f3 的時候,函數體內部的 this 指向 #f3。

執行函數體內的代碼
(給 this 添加屬性,就相當于給實例添加屬性)

默認返回 this
由于函數體內部的 this 指向新創建的內存空間,默認返回 this ,就相當于默認返回了
該內存空間,也就是上圖中的 #f1。此時,#f1的內存空間被變量 p1 所接受。也就是說
p1 這個變量,保存的內存地址就是 #f1,同時被標記為 Person 的實例

以上就是構造函數的整個執行過程。

構造函數的返回值

構造函數執行過程的最后一步是默認返回 this,構造函數的返回值還有其它情況

           (1) )沒有手動添加返回值,默認返回 this 
                function Person1() {
                  this.name = "zhangsan";
                }
                var p1 = new Person1();
                
                p1: {
                  name: "zhangsan"
                }
            (2) 手動添加一個基本數據類型的返回值,最終還是返回 this
                function Person2() {
                  this.age = 28;
                  return 50;
                }
                var p2 = new Person2();
                console.log(p2.age);   // 28
                
                p2: {
                  age: 28
                }
                注意:如果上面是一個普通函數的調用,那么返回值就是 50 !!!
        (3) 手動添加一個復雜數據類型(對象)的返回值,最終返回該對象
                  例一:
                   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);  // "中性"
            

// 構造函數基礎點學習完畢啦~

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105870.html

相關文章

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

    摘要:部分源碼分析小記底層數據結構底層的數據結構就是數組,數組元素類型為類型,即可以存放所有類型數據。初始容量大于初始化元素數組新建一個數組初始容量為為空對象數組初始容量小于,拋出異常無參構造函數。 JDK1.8 ArrayList部分源碼分析小記 底層數據結構 底層的數據結構就是數組,數組元素類型為Object類型,即可以存放所有類型數據。我們對ArrayList類的實例的所有的操作底層都...

    王軍 評論0 收藏0
  • javascript小記

    摘要:模板字面量相當于格式化字符串字符串用兩個包含起來并且內部的占位符用標識一般用于標識多行文本或者配合函數使用與箭頭函數用于數組是用于讓數組每一個元素都調用函數的語法基本格式為其中為數組元素下標為當前元素所屬的數組對象在實際調用時只需要箭頭函數 1.模板字面量相當于格式化字符串,字符串用兩個``包含起來,并且內部的占位符用${variable}標識.一般用于標識多行文本或者配合函數使用. ...

    waltr 評論0 收藏0
  • 面向對象小記

    摘要:面向對象原型面向對象想開一個車,你不需要自己去造一個車,只需要一把鑰匙,車對于你來說就是一個對象。使用構造函數模式和原型模式組合初學筆記,個人記錄備忘,如有謬誤,歡迎指正。 面向對象、原型 面向對象 想開一個車,你不需要自己去造一個車,只需要一把鑰匙,車對于你來說就是一個對象。在JavaScript中的對象, 具有屬性,當屬性的值是一個函數時,那么此屬性就是這個對象的方法.訪問屬性的方...

    mmy123456 評論0 收藏0
  • 幾道前端面試題小記

    摘要:全局環境調用函數的對象實際為,所以函數內的指向構造函數通過構造函造函數生成了一個新對象,指向這個新對象。學習前端一個月,上一周面試了大概多家,收獲的卻是寥寥。為了效率,前端各方面的內容都有涉獵,深度卻相當不足,面試時暴露各種問題。 最近面試了不少家,苦于前端經驗薄弱,被各種血虐。做了不少家面試題,把各種不會的回來再做一遍,作為經驗總結吧。 1.如何最優性能去重一個數組? 方法有好多,比...

    tulayang 評論0 收藏0
  • 幾道前端面試題小記

    摘要:全局環境調用函數的對象實際為,所以函數內的指向構造函數通過構造函造函數生成了一個新對象,指向這個新對象。學習前端一個月,上一周面試了大概多家,收獲的卻是寥寥。為了效率,前端各方面的內容都有涉獵,深度卻相當不足,面試時暴露各種問題。 最近面試了不少家,苦于前端經驗薄弱,被各種血虐。做了不少家面試題,把各種不會的回來再做一遍,作為經驗總結吧。 1.如何最優性能去重一個數組? 方法有好多,比...

    yhaolpz 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<