JavaScript四種調用模式和this樣本介紹_javascript技巧

來源:互聯網
上載者:User
JavaScript調用時除了聲明時定義的形參外,每個函數接受兩個附加參數:this 和arguments,this在物件導向編程中非常重要,它取決於調用模式。

JavaScript有四種調用模式,方法調用模式,函數調用模式,構造器調用模式和apply調用模式。這些模式在初始化關鍵參數this上存在差異。

方法調用模式:當一個函數被儲存為對象的一個屬性時,我們稱它為一個方法,當一個方法被調用時,this被綁定到該對象上。如果調用運算式包含一個屬性取運算式(即一個.點運算式或[script]下標運算式),那麼它被當做一個方法調用。
複製代碼 代碼如下:

var myObject = {
value: 0;
increment: function(inc){
this.value += typeof inc === 'number' ? inc : 1;
}
};

myObject.increment();
document.writeln(myObject.value);//1

myObject.increment(2);
document.writeln(myObject.value);//2

方法可以使用this去訪問對象,所以它能從對象中取值或修改對象。this的綁定發生在調用的時候。這個超級遲綁定使得函數可以對this高度複用。通過this可以取得他們所屬的上下文方法稱為公用方法。

函數調用模式:當一個函數並非一個對象的屬性時,那麼它被當做一個函數來調用 var sum = add(3, 4);//sum值為7
當函數以此模式調用時,this被綁定到全域對象。

構造器調用模式:JavaScript是一門基於原型繼承的語言。這意味著可以直接從其他對象繼承屬性。該語言是無類別的。
如果在函數前面帶上new來調用,那麼將建立一個隱藏串連到該函數的prototype成員的新對象,同時this將會被綁定到那個新對象上。

Apply調用模式:因為JavaScript是一門函數式的物件導向程式設計語言,所以函數可以擁有方法。
apply方法讓哦我們構建一個參數數組並用其去調用函數。它也允許我們選擇this的值。
apply方法接受兩個參數,第一個將被綁定給this的值,第二個就是一個參數數組。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.