箭頭函數(shù)中的this和普通函數(shù)中的this對(duì)比

原文鏈接:(https://www.cnblogs.com/fanzhanxiang/p/8888963.html)

ES6中新增了箭頭函數(shù)這種語法,箭頭函數(shù)以其簡(jiǎn)潔性和方便獲取this的特性阀圾。下面來總結(jié)一下他們之間的區(qū)別:

普通函數(shù)下的this:

  • 在普通函數(shù)中的this總是代表它的直接調(diào)用者挖炬,在默認(rèn)情況下荧库,this指的是window若贮,
  • 在嚴(yán)格模式下,沒有直接調(diào)用者的函數(shù)中的this是 undefined使用
  • call,apply,bind(ES5新增)綁定的,this指的是 綁定的對(duì)象

箭頭函數(shù)中的this:

  • 箭頭函數(shù)沒有自己的this, 它的this是繼承而來; 默認(rèn)指向在定義它時(shí)所處的對(duì)象(宿主對(duì)象),
  • 而不是執(zhí)行時(shí)的對(duì)象, 定義它的時(shí)候,可能環(huán)境是window,也有可能是其他的逸爵。

看下面這段代碼:

function a() { 
   console.log(this);  //window
 }  
 a();

因?yàn)閍是一個(gè)全局函數(shù)急鳄,也就是掛載在window對(duì)象下的扒披,所以a(),等價(jià)于window.a();

var obj = {  
   say: function () {  
     setTimeout(function () {  
       console.log(this);   //window   
     });  
   }  
 }   
 obj.say();

定時(shí)器中的函數(shù)乐导,由于沒有默認(rèn)的宿主對(duì)象典阵,所以this指向window

var obj = {  
   func: function() {},  
   say: function () {  
     console.log(this);//obj,此時(shí)的this是obj對(duì)象 
     setTimeout(function () {   
       console.log(this);  //window
 that.func();  
     });   
   }  
 }  
 obj.say(); 

此時(shí)say的宿主環(huán)境是obj,所以say里面的this是obj,定時(shí)器中的函數(shù), 由于沒有默認(rèn)的宿主對(duì)象,所以默認(rèn)this指向window

嚴(yán)格模式下的this:

在嚴(yán)格模式下,沒有直接調(diào)用者的函數(shù)中的this是 undefined

var obj={   
      say:function(){   
        console.log(this); //obj 
 }  
    };  
obj.say(); </pre>

有直接調(diào)用者的this是它的調(diào)用者

箭頭函數(shù)中的this:

var obj = {  
   say: function () {  
     setTimeout(() => {  
       console.log(this);// obj 
 });  
   }  
 }  
 obj.say(); </pre>

此時(shí)的 this繼承自obj, 指的是定義它的對(duì)象obj, 而不是 window!

var obj = {  
say: function () { var f1 = () => {  
    console.log(this); // obj 
    setTimeout(() => {  
      console.log(this); // obj 
 })  
  }  
  f1();  
  }  
}   
obj.say() </pre>

因?yàn)閒1定義時(shí)所處的函數(shù) 中的 this是指的 obj, setTimeout中的箭頭函數(shù)this繼承自f1,所以不管有多層嵌套,都是 obj** </pre>

var obj = {  
say: function () { var f1 = function () {  
    console.log(this); // window, f1調(diào)用時(shí),沒有宿主對(duì)象,默認(rèn)是window 
    setTimeout(() => {  
      console.log(this); // window 
 })  
  };  
  f1();  
  }  
}  
obj.say() </pre>

結(jié)果: 都是 window,因?yàn)?箭頭函數(shù)在定義的時(shí)候它所處的環(huán)境相當(dāng)于是window, 所以在箭頭函數(shù)內(nèi)部的this函數(shù)window

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奋渔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子壮啊,更是在濱河造成了極大的恐慌嫉鲸,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件歹啼,死亡現(xiàn)場(chǎng)離奇詭異玄渗,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)狸眼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門藤树,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拓萌,你說我怎么就攤上這事岁钓。” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵甜紫,是天一觀的道長(zhǎng)降宅。 經(jīng)常有香客問我,道長(zhǎng)囚霸,這世上最難降的妖魔是什么腰根? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮拓型,結(jié)果婚禮上额嘿,老公的妹妹穿的比我還像新娘。我一直安慰自己劣挫,他們只是感情好册养,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著压固,像睡著了一般球拦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帐我,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天坎炼,我揣著相機(jī)與錄音,去河邊找鬼拦键。 笑死谣光,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的芬为。 我是一名探鬼主播萄金,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼媚朦!你這毒婦竟也來了氧敢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤询张,失蹤者是張志新(化名)和其女友劉穎孙乖,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瑞侮,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡的圆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年鼓拧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了半火。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡季俩,死狀恐怖钮糖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤店归,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布阎抒,位于F島的核電站,受9級(jí)特大地震影響消痛,放射性物質(zhì)發(fā)生泄漏且叁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一秩伞、第九天 我趴在偏房一處隱蔽的房頂上張望逞带。 院中可真熱鬧,春花似錦纱新、人聲如沸展氓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遇汞。三九已至,卻和暖如春簿废,著一層夾襖步出監(jiān)牢的瞬間空入,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工捏鱼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留执庐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓导梆,卻偏偏與公主長(zhǎng)得像轨淌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子看尼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355