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中文网其他相关文章!