javascript - ES6 中匿名函数的函数名称

标签 javascript function ecmascript-6

在 ECMAScript 6 中,所有函数都有适当的名称:

console.log((function fn() {}).name); // 'fn'

console.log((new Function()).name); // 'anonymous'

但是如果是匿名函数:

console.log((function () {}).name); // (empty string)

您能否解释一下,为什么在第三个示例中我们无法获得输出'anonymous'

最佳答案

ECMA-262 明确声明使用 Function 构造函数创建的函数的名称设置为“匿名”,请参阅 Runtime Semantics: CreateDynamicFunction(constructor, newTarget, kind, args)步骤 29。

但是,使用没有可选名称的函数表达式创建的函数(或以其他方式绑定(bind)名称)的情况并非如此,在这种情况下,名称必须保留为空字符串。

控制台试图提供帮助,但在这种情况下,将“”更改为“匿名”可能会产生误导。

关于javascript - ES6 中匿名函数的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41798680/

相关文章:

javascript函数参数对象验证

Javascript/React 列出对象的标题

javascript - 在 Javascript 中实现 Duck Typing 时,.file() 方法不起作用

javascript - 如何使用 Javascript 将此文本转换为正确的 HTML 字符

javascript - Lint 检查 Javascript 相等性是否被误用作 IntelliJ 中的赋值

javascript - 如何在 Flow 中返回的 React$Element 中指定可选 prop?

javascript - 导航栏在滚动 Bootstrap 4 上更改颜色

javascript - 通过azure存储上传图像

c - 这个数组函数有什么作用呢? - C 编程

javascript - 无法导入捆绑文件