箭頭函數(shù) 為什么不用綁定this

箭頭函數(shù)(Arrow Functions)在JavaScript中不綁定自己的this值焕窝,而是繼承自父執(zhí)行上下文中的this值蹬挺。這意味著箭頭函數(shù)沒有自己的this,它的this是在函數(shù)定義時的外層作用域中確定的它掂,并且在函數(shù)執(zhí)行時不會改變巴帮。

以下是為什么箭頭函數(shù)不綁定this的幾個原因:

1. 語法簡潔性

箭頭函數(shù)的設(shè)計旨在簡化函數(shù)表達(dá)式的寫法,尤其是對于那些不關(guān)心this綁定的情況。對于一些簡短的回調(diào)函數(shù)榕茧,沒有必要每次都創(chuàng)建一個新的this上下文发乔。

2. 避免傳統(tǒng)函數(shù)的this綁定問題

在傳統(tǒng)的JavaScript函數(shù)中,this的值取決于函數(shù)是如何被調(diào)用的雪猪。例如,如果函數(shù)作為對象的方法被調(diào)用起愈,this指向該對象只恨;如果作為普通函數(shù)調(diào)用,this通常指向全局對象(在嚴(yán)格模式下為undefined)抬虽。這種this綁定有時會導(dǎo)致混淆和錯誤官觅。

3. 保持詞法作用域

箭頭函數(shù)遵循詞法作用域(lexical scoping),這意味著它們的this值是由它們被定義時的上下文決定的阐污,而不是執(zhí)行時的上下文休涤。這使得箭頭函數(shù)中的this更易于理解和預(yù)測。

4. 適用性

箭頭函數(shù)特別適用于那些不需要特定this值的場景笛辟,例如回調(diào)函數(shù)功氨、數(shù)組操作中的映射和過濾函數(shù)、或者那些簡單地使用閉包而不需要改變this指向的場合手幢。

示例

function Person() {
  this.age = 0;

  // 傳統(tǒng)函數(shù)
  setInterval(function growUp() {
    this.age++; // 在非嚴(yán)格模式下捷凄,這里的this指向全局對象,嚴(yán)格模式下為undefined
  }, 1000);

  // 箭頭函數(shù)
  setInterval(() => {
    this.age++; // 這里的this指向Person的實(shí)例围来,因?yàn)榧^函數(shù)從父作用域繼承了this
  }, 1000);
}

var person = new Person();

在這個例子中跺涤,使用傳統(tǒng)函數(shù)時,this.age將不會按預(yù)期工作监透,因?yàn)?code>this指向了全局對象(或者undefined)桶错。而使用箭頭函數(shù),this正確地指向了Person的實(shí)例胀蛮。

總的來說院刁,箭頭函數(shù)的設(shè)計是為了提供一種不綁定this的函數(shù)寫法,使得代碼更加清晰醇滥、簡潔黎比,并避免了一些與this相關(guān)的常見錯誤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鸳玩,一起剝皮案震驚了整個濱河市阅虫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌不跟,老刑警劉巖颓帝,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡购城,警方通過查閱死者的電腦和手機(jī)吕座,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘪板,“玉大人吴趴,你說我怎么就攤上這事∥昱剩” “怎么了锣枝?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長兰英。 經(jīng)常有香客問我撇叁,道長,這世上最難降的妖魔是什么畦贸? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任陨闹,我火速辦了婚禮,結(jié)果婚禮上薄坏,老公的妹妹穿的比我還像新娘趋厉。我一直安慰自己,他們只是感情好胶坠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布觅廓。 她就那樣靜靜地躺著,像睡著了一般涵但。 火紅的嫁衣襯著肌膚如雪杈绸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天矮瘟,我揣著相機(jī)與錄音瞳脓,去河邊找鬼。 笑死澈侠,一個胖子當(dāng)著我的面吹牛劫侧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哨啃,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼烧栋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拳球?” 一聲冷哼從身側(cè)響起审姓,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祝峻,沒想到半個月后魔吐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扎筒,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年酬姆,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗜桌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡辞色,死狀恐怖骨宠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情相满,我是刑警寧澤诱篷,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站雳灵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏闸盔。R本人自食惡果不足惜悯辙,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迎吵。 院中可真熱鬧躲撰,春花似錦、人聲如沸击费。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔫巩。三九已至谆棱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間圆仔,已是汗流浹背垃瞧。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留坪郭,地道東北人个从。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像歪沃,于是被迫代替她去往敵國和親嗦锐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

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