日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

箭头函数特殊性与普通函数的区别

發(fā)布時間:2024/8/1 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 箭头函数特殊性与普通函数的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參考:https://juejin.cn/post/7050492355056664612

箭頭函數(shù)沒有[[Construct]]

  • 函數(shù)對象是一個支持[[Call]] 、 [[Construct]]內(nèi)部方法的對象。每個支持[[Construct]]的對象必須支持[[Call]],也就是說,每個構(gòu)造函數(shù)必須是一個函數(shù)對象。因此,構(gòu)造函數(shù)也可以成為構(gòu)造函數(shù)函數(shù)或構(gòu)造函數(shù)對象。
    所以,想要對某個對象使用new,就得確保該對象具有 [[Construct]]這個內(nèi)部方法。而箭頭函數(shù)沒有 [[Construct]]。
  • 為什么箭頭函數(shù)沒有 [[Construct]]

    箭頭函數(shù)在設(shè)計之初,就是為了設(shè)計一種更簡短的函數(shù)并且不綁定this。所以箭頭函數(shù)不為參數(shù)super、this、new.target定義本地綁定。箭頭函數(shù)中的this、super、arguments及new.target這些值由外圍最近一層非箭頭函數(shù)決定。
    而這樣的一個函數(shù)設(shè)計者認(rèn)為沒有必要委托給能夠 [[Construct]]的目標(biāo)函數(shù),所以箭頭函數(shù)沒有 [[Construct]]。
    同時因為沒有構(gòu)造原型的需求,所以箭頭函數(shù)不存在prototype屬性。

    箭頭函數(shù)與普通函數(shù)的區(qū)別

  • 沒有this、super、arguments及new.target綁定:this、super、arguments及new.target的值由所在的最靠近的非箭頭函數(shù)來決定。
  • 不能被new調(diào)用:箭頭函數(shù)沒有[[Construct]]方法,因此不能被用為構(gòu)造函數(shù),使用new調(diào)用箭頭函數(shù)會拋出錯誤。
  • 沒有原型:既然不能對箭頭函數(shù)使用new,那么他也不需要原型,也就沒有prototype屬性。
  • 不能更改this:this的值在函數(shù)內(nèi)部不能被修改,在函數(shù)的整個生命周期內(nèi)其值會保持不變。
  • 沒有arguments對象:箭頭函數(shù)沒有arguments綁定,必須依賴于具名參數(shù)或剩余參數(shù)來訪問函數(shù)的參數(shù)。
  • 不允許重復(fù)的具名參數(shù):箭頭函數(shù)不允許擁有重復(fù)的具名參數(shù),無論是否在嚴(yán)格模式下:而相對來說,傳統(tǒng)函數(shù)只有在嚴(yán)格模式下才禁止這種重復(fù)。

  • 總結(jié)

    以上是生活随笔為你收集整理的箭头函数特殊性与普通函数的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。