箭頭函數和普通函數的區別2.0

1.書寫上的區別

箭頭函數比普通函數更加的簡潔,而且在一定程度上可以簡寫,比如,括號裏面只有一個參數,括號可以省略, 另外如果函數體中只有一行代碼,花括號也可以省略。

2.參數上的區別

普通函數的參數是 arguments,而箭頭函數的的是 args

3.this 指向的不同

  • 箭頭函數的 this 指向上層函數作用域的 this 對象,如果沒有上層函數作用域,則指向頂部 this(在瀏覽器中頂部 this 則是 window)。普通函數的this指向該函數的調用者。
  • call, apply, bind 會改變普通函數的 this,但不會改變箭頭函數的 this

4.原型和構造函數的問題

箭頭函數不能使用 new 生成實例,因爲箭頭函數沒有 prototype,而 construct 在 prototype 裏面

5.對es6使用的限制

箭頭函數內不能用 yield 且不能用作 Generator 函數,而普通函數可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章