JS 各種建立

來源:互聯網
上載者:User

標籤:使用   工廠   修改   範圍   img   cto   name   function   類型   

1、建立函數:

  (1)函式宣告:

    function myfun(){};//存在聲明得瑟提升,整個函數都會提升

  (2)函數運算式:

    var myfun = function(){}//不存在函數的提升

 

2、建立對象:

  1)單一對象

    (1)Object建構函式

    

 

    (2)對象字面量

    

 2)建立很多個物件:

  (1)原廠模式(不能知道對象的類型)

    function Obj(name,age,job){

      var o = new Object();

      o.name = name;

      o.age = age;

      o.job = job;

      o.say = function(){};

      return o;

    }

    var person1 = Obj(‘‘, ‘‘, ‘‘);

  (2)建構函式模式(以這種方式定義建構函式是定義在global對象上的)

  

  使用 new 關鍵字建立新執行個體的步驟:

  (1)建立一個新對象

  (2)將建構函式的範圍賦給新對象(此時this指向新對象)

  (3)執行建構函式中的代碼(為這個新對象添加屬性)

   (4) 返回新對象。

新對象都有一個constructor屬性,該屬性只想建構函式,如person1的constructor指向Person

注意:檢測物件類型的方法(1)constructor(2)instanceof(會檢測出既是object的執行個體,也是Person的執行個體)

  (3)原型模式

  

  只要創造一個函數,就會為該函數建立一個 prototype屬性,指向函數的原型對象。所有原型對象都會獲得一個指向prototype屬性所在函數的的指標,即:constructor指標

  如:Person函數的prototype指向Person的原型對象“Person Prototype”.person1 和person2de _proto_指向“Person Prototype”;

    Person Prototype 對象中含有:constructor、name、age、say屬性,其中constroctor指向Person 

 

注意:在執行個體對象中添加一個同原型對象裡的誰能夠同名的屬性時,這個屬性就會屏蔽原型對象中的同名屬性,換句話說,新添加的屬性只會組織我們訪問原型對象中的那個屬性,而不會修改原型對象中的屬性。使用delete可以完全刪除執行個體屬性:delete person.name;

   (4)組合使用建構函式和原型模式

    因為原型模式存在參考型別會被修改的問題,所以需要組合使用建構函式模式和原型模式

    建構函式中定義執行個體屬性,原型模式中定義方法和共用屬性

 

JS 各種建立

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.