箭頭函數(shù)的特別點(diǎn)在于 this 的指向I毂佟!馍刮!
箭頭函數(shù)
- 1.箭頭函數(shù)沒(méi)有自己的 this, 它的 this 是繼承而來(lái);
默認(rèn)指向在定義它時(shí)所處的對(duì)象(宿主對(duì)象)信夫,此處指父級(jí)作用域,而不是執(zhí)行時(shí)的對(duì)象, 定義它的時(shí)候卡啰,可能環(huán)境是window静稻;
箭頭函數(shù)可以方便地讓我們?cè)?setTimeout,setInterval 中方便的使用this
- 2.箭頭函數(shù)中匈辱,this 指向的固定化振湾,并不是因?yàn)榧^函數(shù)內(nèi)部有綁定 this 的機(jī)制,實(shí)際原因是箭頭函數(shù)根本沒(méi)有自己的 this梅誓,導(dǎo)致內(nèi)部的 this 就是外層代碼塊的 this恰梢。
普通函數(shù)中的 this:
- this 總是代表它的直接調(diào)用者 (js 的 this 是執(zhí)行上下文)佛南,例如 obj.func梗掰,那么 func 中的this 就是 obj
- 在默認(rèn)情況(非嚴(yán)格模式下,未使用 'use strict'),沒(méi)找到直接調(diào)用者嗅回,則 this 指的是 window (約定俗成)
- 在嚴(yán)格模式下及穗,沒(méi)有直接調(diào)用者的函數(shù)中的 this 是 undefined
- 使用call,apply绵载,bind(ES5新增)綁定的埂陆,this 指的是綁定的對(duì)象