首頁  >  文章  >  web前端  >  箭頭函數或父作用域何時定義函數的參數?

箭頭函數或父作用域何時定義函數的參數?

DDD
DDD原創
2024-10-18 16:00:05360瀏覽

When Do Arrow Functions or the Parent Scope Define the Arguments of a Function?

ES6 箭頭函數中的參數:官方說明

在 ES6 箭頭函數中,arguments 關鍵字的行為一直是爭論的話題。一些瀏覽器和平台(例如 Chrome、Firefox 和 Node)偏離了最初的 TC39 建議,引發了對該規範正確解釋的質疑。

根據官方 ES6 規範,箭頭函數沒有自己的定義。自己的參數在其範圍內綁定。呼叫時,箭頭函數不會在聲明實例化過程中建立參數物件。

這與 Chrome、Firefox 和 Node 等瀏覽器中觀察到的行為相矛盾,這些瀏覽器在箭頭函數中建立參數物件。因此,這些瀏覽器錯誤地提供了對傳遞給封閉函數的參數的存取。

另一方面,Babel 遵循官方規範,在箭頭函數內存取參數時拋出「ReferenceError」。這與箭頭函數作為採用其父作用域進行參數存取的函數的預期行為一致。

因此,正確的理解是箭頭函數沒有專用的參數綁定。使用箭頭函數時,開發人員應使用封閉函數提供的參數物件來存取傳遞的參數。

以上是箭頭函數或父作用域何時定義函數的參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn