首页 > web前端 > js教程 > 正文

ES6 中的箭头函数可以访问 Arguments 对象吗?

DDD
发布: 2024-10-18 15:55:03
原创
657 人浏览过

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)
  • “当调用这样的函数时,声明实例化不会创建参数对象。” (14.2.16.1)
  • “甚至有一个特定的注释 (18 a) 指出‘箭头函数永远不会有参数对象。’” (14.2.16.1)

基于在这些官方文档中,很明显 Babel 的行为是正确的,箭头函数不应该访问其范围内的参数对象。

以上是ES6 中的箭头函数可以访问 Arguments 对象吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板