這篇文章將為大家詳細(xì)講解有關(guān)javascript中apply() 和 call() 方法的作用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)建站專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、安陸網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為安陸等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
每個函數(shù)都包含兩個非繼承而來的方法:apply()和call()。;
call與apply都屬于Function.prototype的一個方法,所以每個function實例都有call、apply屬性;
作用
call()方法和apply()方法的作用相同:改變this指向。
區(qū)別
他們的區(qū)別在于接收參數(shù)的方式不同:
call():第一個參數(shù)是this值沒有變化,變化的是其余參數(shù)都直接傳遞給函數(shù)。在使用call()
方法時,傳遞給函數(shù)的參數(shù)必須逐個列舉出來。例:call(obj,a,b,c)
apply():傳遞給函數(shù)的是參數(shù)數(shù)組。 例:apply(obj,[a,b,c])
上代碼:
function add(c, d){ return this.a + this.b + c + d; } var o = {a:1, b:3}; add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 this指向o add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 this指向o
關(guān)于javascript中apply() 和 call() 方法的作用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。