call妻献、apply、bind

1蜘犁、call

var a = {

? ? user:"you",

? ? fn:function(){

? ? ? ? console.log(this.user);

? ? }

}

var b = a.fn;

b();//undefined

b.call(a);//you

//通過(guò)在call方法翰苫,給第一個(gè)參數(shù)添加要把b添加到哪個(gè)環(huán)境中,簡(jiǎn)單來(lái)說(shuō),this就會(huì)指向那個(gè)對(duì)象奏窑。

//call方法除了第一個(gè)參數(shù)以外還可以添加多個(gè)參數(shù)导披,如下:

var a = {

? ? user:"you",

? ? fn:function(e,ee){

? ? ? ? console.log(this.user); //you

? ? ? ? console.log(e+ee); //3

? ? }

}

var b = a.fn;

b.call(a,1,2);

2、apply()

//apply方法和call方法有些相似埃唯,它也可以改變this的指向

var a = {

? ? user:"you",

? ? fn:function(){

? ? ? ? console.log(this.user); //you

? ? }

}

var b = a.fn;

b.apply(a);

//同樣apply也可以有多個(gè)參數(shù)撩匕,但是不同的是,第二個(gè)參數(shù)必須是一個(gè)數(shù)組墨叛,如下:

var a = {

? ? user:"you",

? ? fn:function(e,ee){

? ? ? ? console.log(this.user); //you

? ? ? ? console.log(e+ee); //11

? ? }

}

var b = a.fn;

b.apply(a,[10,1]);

//注意如果call和apply的第一個(gè)參數(shù)寫(xiě)的是null止毕,那么this指向的是window對(duì)象

3、bind()

//bind方法和call漠趁、apply方法有些不同扁凛,但是不管怎么說(shuō)它們都可以用來(lái)改變this的指向。

//不同

var a = {

? ? user:"you",

? ? fn:function(){

? ? ? ? console.log(this.user);

? ? }

}

var b = a.fn;

b.bind(a);

//我們發(fā)現(xiàn)代碼沒(méi)有被打印闯传,對(duì)谨朝,這就是bind和call、apply方法的不同甥绿,實(shí)際上bind方法返回的是一個(gè)修改過(guò)后的函數(shù)字币。

于是

var c = b.bind(a);

console.log(c); //function() { [native code] }

//同樣bind也可以有多個(gè)參數(shù),并且參數(shù)可以執(zhí)行的時(shí)候再次添加共缕,但是要注意的是纬朝,參數(shù)是按照形參的順序進(jìn)行的。

var a = {

? ? user:"you",

? ? fn:function(e,d,f){

? ? ? ? console.log(this.user); //you

? ? ? ? console.log(e,d,f); //10 1 2

? ? }

}

var b = a.fn;

var c = b.bind(a,10);

c(1,2);

//總結(jié):call和apply都是改變上下文中的this并立即執(zhí)行這個(gè)函數(shù)骄呼,bind方法可以讓對(duì)應(yīng)的函數(shù)想什么時(shí)候調(diào)就什么時(shí)候調(diào)用共苛,并且可以將參數(shù)在執(zhí)行的時(shí)候添加,這是它們的區(qū)別蜓萄,根據(jù)自己的實(shí)際情況來(lái)選擇使用隅茎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嫉沽,隨后出現(xiàn)的幾起案子辟犀,更是在濱河造成了極大的恐慌,老刑警劉巖绸硕,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堂竟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡玻佩,警方通過(guò)查閱死者的電腦和手機(jī)出嘹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咬崔,“玉大人税稼,你說(shuō)我怎么就攤上這事烦秩。” “怎么了郎仆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵只祠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我扰肌,道長(zhǎng)抛寝,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任曙旭,我火速辦了婚禮墩剖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夷狰。我一直安慰自己岭皂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布沼头。 她就那樣靜靜地躺著爷绘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪进倍。 梳的紋絲不亂的頭發(fā)上土至,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音猾昆,去河邊找鬼陶因。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垂蜗,可吹牛的內(nèi)容都是我干的楷扬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼贴见,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼烘苹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起片部,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤镣衡,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后档悠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體廊鸥,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年辖所,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惰说。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奴烙,死狀恐怖助被,靈堂內(nèi)的尸體忽然破棺而出剖张,到底是詐尸還是另有隱情切诀,我是刑警寧澤揩环,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站幅虑,受9級(jí)特大地震影響丰滑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜倒庵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一褒墨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧擎宝,春花似錦郁妈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至极阅,卻和暖如春胃碾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筋搏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工仆百, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奔脐。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓俄周,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親髓迎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子栈源,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容