apply、call姊扔、bind的區(qū)別惠奸?

一、call恰梢、apply佛南、bind方法的共同點(diǎn)和區(qū)別:

(1)apply 、 call 嵌言、bind 三者都是用來改變函數(shù)的this對(duì)象的指向的嗅回;
(2)apply 、 call 摧茴、bind 三者第一個(gè)參數(shù)都是this要指向的對(duì)象绵载,也就是想指定的上下文(函數(shù)的每次調(diào)用都會(huì)擁有一個(gè)特殊值——本次調(diào)用的上下文(context)——這就是this關(guān)鍵字的值。);
(3)apply 娃豹、 call 焚虱、bind 三者都可以利用后續(xù)參數(shù)傳參;
(4)bind 是返回對(duì)應(yīng)函數(shù)懂版,便于稍后調(diào)用鹃栽;apply 、call 則是立即調(diào)用 定续。

1谍咆、call():

語法:fn.call(thisArg禾锤,arg1私股,arg2.....)
其中thisArg就是fun函數(shù)運(yùn)行時(shí)的指定的this值。arg1恩掷,arg2傳遞的其他值.....
其中thisArg有下面4種情況:
(1) 不傳倡鲸,或者傳null,undefined, 函數(shù)中的this指向window對(duì)象
(2) 傳遞另一個(gè)函數(shù)的函數(shù)名黄娘,函數(shù)中的this指向這個(gè)函數(shù)的引用
(3) 傳遞字符串峭状、數(shù)值或布爾類型等基礎(chǔ)類型,函數(shù)中的this指向其對(duì)應(yīng)的包裝對(duì)象逼争,如 String优床、Number、Boolean
(4) 傳遞一個(gè)對(duì)象誓焦,函數(shù)中的this指向這個(gè)對(duì)象

function a(){   
   console.log(this);   //輸出函數(shù)a中的this對(duì)象
}       
function b(){}       
var c={name:"call"};    //定義對(duì)象c  

a.call();   //window
a.call(null);   //window
a.call(undefined);   //window
a.call(1);   //Number
a.call('');   //String
a.call(true);   //Boolean
a.call(b);   //function b(){}
a.call(c);   //Object

常用例子:
const obj= {
      name: ‘Lucy’
}

function fn(x,y){
   console.log(this);
   console.log(x+y)
}

//1胆敞、調(diào)用函數(shù);2杂伟、改變this的指向
fn.call(obj,1,2)   //還可以傳遞參數(shù)
2移层、apply()

語法:fn.apply(thisArg,[arg1赫粥,arg2.....])
說明:如果 thisArg 不是一個(gè)有效的數(shù)組或者不是 arguments 對(duì)象观话,那么將導(dǎo)致一個(gè) TypeError。
如果沒有提供 任何一個(gè)參數(shù)越平,那么 Global 對(duì)象將被用作 thisArg频蛔, 并且無法被傳遞任何參數(shù)。

常用例子:
const obj= {
   name: ‘Lucy’
}

function fn(x,y){
   console.log(this);
   console.log(x+y)
}

//1秦叛、調(diào)用函數(shù)晦溪;2、改變this的指向
fn.call(obj,[1,2])   //還可以傳遞參數(shù),必須以數(shù)組的形式出現(xiàn)

call 和 apply的區(qū)別
對(duì)于 apply书闸、call 二者而言尼变,作用完全一樣,只是接受參數(shù)的方式不太一樣。

3嫌术、bind()

語法:fn.bind(thisArg[, arg1[, arg2[, ... ]]]);

thisArg:當(dāng)綁定函數(shù)被調(diào)用時(shí)哀澈,該函數(shù)會(huì)作為原函數(shù)運(yùn)行時(shí)的this指向,當(dāng)使用new操作符調(diào)用綁定函數(shù)時(shí)度气,該參數(shù)無效割按。
arg1, arg2... :當(dāng)綁定函數(shù)被調(diào)用時(shí),這些參數(shù)將置于實(shí)參之前傳遞給被綁定的方法磷籍。
返回值:返回由指定的this值和初始化參數(shù)改造的原函數(shù)拷貝适荣。

var name = "The Window";
var object = {
   name : "My Object",
   getNameFunc : function() {
       return function(){
           return this.name;
       }.bind(this)
   }
}
console.log(object.getNameFunc()());//>My Object

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市院领,隨后出現(xiàn)的幾起案子弛矛,更是在濱河造成了極大的恐慌,老刑警劉巖比然,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丈氓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡强法,警方通過查閱死者的電腦和手機(jī)万俗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饮怯,“玉大人闰歪,你說我怎么就攤上這事”褪” “怎么了库倘?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長置媳。 經(jīng)常有香客問我于樟,道長,這世上最難降的妖魔是什么拇囊? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任迂曲,我火速辦了婚禮,結(jié)果婚禮上寥袭,老公的妹妹穿的比我還像新娘路捧。我一直安慰自己,他們只是感情好传黄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布杰扫。 她就那樣靜靜地躺著,像睡著了一般膘掰。 火紅的嫁衣襯著肌膚如雪章姓。 梳的紋絲不亂的頭發(fā)上佳遣,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音凡伊,去河邊找鬼零渐。 笑死,一個(gè)胖子當(dāng)著我的面吹牛系忙,可吹牛的內(nèi)容都是我干的诵盼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼银还,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼风宁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛹疯,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤戒财,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后苍苞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體固翰,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狼纬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年羹呵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疗琉。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冈欢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盈简,到底是詐尸還是另有隱情凑耻,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布柠贤,位于F島的核電站香浩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏臼勉。R本人自食惡果不足惜邻吭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宴霸。 院中可真熱鬧囱晴,春花似錦、人聲如沸瓢谢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽氓扛。三九已至枯芬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背千所。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工翅楼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人真慢。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓毅臊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親黑界。 傳聞我的和親對(duì)象是個(gè)殘疾皇子管嬉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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