ES6 箭頭函數中的 Arguments 物件:官方文件
箭頭函數以其簡潔的語法迅速吸引了開發人員的注意。然而,引起疑問的一個方面是其中參數物件的可用性。
根據 JavaScript 標準化管理機構 TC39 的官方文檔,箭頭函數不會建立自己的參數物件。與常規函數不同,箭頭函數從其父作用域繼承參數物件。
此行為在以下範例中很明顯,其中使用三個參數呼叫箭頭函數:
<code class="js">(() => console.log(arguments))(1, 2, 3);</code>
在環境中與Chrome、Firefox 和Node.js 一樣,此程式碼將記錄「1,2,3」。然而,Babel 和其他捆綁器會引發錯誤,表示參數未定義。
出現這種差異是因為某些環境允許箭頭函數存取其父作用域的參數對象,而其他環境則實現了 ES6 的嚴格解釋規範,禁止箭頭函數擁有自己的參數對象。
綜上所述,TC39(ES6 規範)的官方文件明確指出箭頭函數不擁有自己的參數物件。在箭頭函數可以存取父作用域參數的某些環境中觀察到的行為是非標準的,可能會導致意外結果。
以上是ES6 箭頭函數中的 Arguments 物件何時可用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!