箭頭函式與普通函式區別

2021-10-10 08:40:29 字數 689 閱讀 8345

1、 箭頭函式是匿名函式,不能作為建構函式,不能使用new

2、箭頭函式不繫結arguments,取而代之用rest引數「…」解決

3、this的作用域不同,箭頭函式不繫結this,會捕獲函式定義的上下文中的this值,作為自己的this值,且一直不變

4、 箭頭函式沒有原型物件

5、箭頭函式不能當作generator函式,不能使用yield關鍵字

箭頭函式相對於普通函式簡潔很多這讓人有種 => 是用來簡化 function 的錯覺,實際上他們兩個存在著很大的差異那就是關於this指向問題!

在普通函式中this指向為當前的排程者,也就是說誰引用this指向誰!

但是在箭頭函式中this直接指向了window!也就是說這裡的this指向是全域性的!這就是他們之間最大的差別

箭頭函式沒有prototype(原型),所以箭頭函式本身沒有this。箭頭函式的this指向在定義的時候繼承自外層第乙個普通函式的this。

被繼承的普通函式的this指向改變,箭頭函式的this指向會跟著改變

箭頭函式外層沒有普通函式,嚴格模式和非嚴格模式下它的this都會指向window(全域性物件)

箭頭函式與普通函式的區別

箭頭函式和普通函式的區別 首先就是 箭頭函式作為匿名函式,是不能作為建構函式的 再者就是更重要的一點 箭頭函式的特點就是不繫結this和arguments 舉個例子 settimeout function 3000 以上是乙個延時定時器中的普通function 我們都知道定時器中會改變this的指向...

箭頭函式與普通函式的區別

箭頭函式 let fun 普通函式 function fun 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。箭頭函式是匿名函式,不能作為建構函式,不能使用newlet fun...

箭頭函式與普通函式的區別

首先在es6中為我們新增了一種新的箭頭函式。箭頭函式在大部分情況下可以替代function使用,減少了一部分的 量,也讓我們的書寫更加流暢。將原有的function關鍵字和函式名都刪掉。並使用 連線引數列表和函式體 function fun index 以上的寫法等於 fun index 當形參數量...