js箭头函数和普通函数区别
生活随笔
收集整理的這篇文章主要介紹了
js箭头函数和普通函数区别
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
js箭頭函數(shù)和普通函數(shù)區(qū)別
實(shí)驗(yàn)環(huán)境:nodejs v12.16.1
箭頭函數(shù)不能作為構(gòu)造函數(shù),而普通函數(shù)可以
箭頭函數(shù)沒有原型,而普通函數(shù)有
箭頭函數(shù)return可以省略語句塊。(如果=>右邊不是語句塊,則代表return右邊的表達(dá)式或?qū)ο?
箭頭函數(shù)不綁定arguments(注意:瀏覽器環(huán)境下獲取箭頭函數(shù)的arguments會(huì)報(bào)錯(cuò)),而普通函數(shù)argument綁定了參數(shù)列表對(duì)象
this指向問題[重點(diǎn),也是難點(diǎn)]
- 箭頭函數(shù)的this指向上層函數(shù)作用域的this對(duì)象,如果沒有上層函數(shù)作用域,則指向頂部this(在瀏覽器中頂部this則是window)。普通函數(shù)的this指向該函數(shù)的調(diào)用者。
- call, apply, bind會(huì)改變普通函數(shù)的this,但不會(huì)改變箭頭函數(shù)的this
實(shí)踐是檢驗(yàn)真理的有效標(biāo)準(zhǔn),在此,我們必須更加深入了解,再耐心看一個(gè)復(fù)雜的例子:
依然是nodejs環(huán)境下:
箭頭函數(shù)內(nèi)不能用yield且不能用作Generator函數(shù),而普通函數(shù)可以。
總結(jié)
以上是生活随笔為你收集整理的js箭头函数和普通函数区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js实现数组降维算法[不准用Array.
- 下一篇: 民间故事120篇短篇