首頁 >web前端 >js教程 >ES6 中的箭頭函數可以存取 Arguments 物件嗎?

ES6 中的箭頭函數可以存取 Arguments 物件嗎?

DDD
DDD原創
2024-10-18 15:55:03702瀏覽

Do Arrow Functions in ES6 Have Access to Arguments Objects?

ES6 箭頭函數參數的官方文件

在 ES6 領域,箭頭函數引發了關於參數處理的爭論關鍵字。與早期 TC39 建議相反,Chrome、Firefox 和 Node.js 等瀏覽器引擎似乎允許箭頭函數存取參數物件。

然而,流行的 JavaScript 轉譯器 Babel 遵循了最初的 TC39 立場,並且不允許這種行為。這種不一致使得開發人員尋求官方文件來解決歧義。

根據 [ECMAScript 2015 語言規範](https://www.ecma-international.org/ecma-262/6.0/#sec-箭頭函數定義),箭頭函數沒有自己的參數綁定。呼叫箭頭函數時,不會建立任何參數物件。

具體來說,規格指出:

  • 「箭頭函數在其作用域中沒有自己的參數綁定;沒有參數物件是在呼叫它們時創建的。」 ( 14.8.1)
  • 「箭頭函數表達式的計算結果為[[ThisMode]] 設定為詞法的函數。」(14.2.16.1)
  • 「當呼叫這樣的函數時,宣告實例化不會建立參數物件。
  • 基於在這些官方文件中,很明顯Babel 的行為是正確的,箭頭函數不應該存取其作用域內的參數物件。

以上是ES6 中的箭頭函數可以存取 Arguments 物件嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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