有一篇文章AsyncFunction - JavaScript on MDN。它显示以下代码段:

new AsyncFunction([arg1[, arg2[, ...argN]],] functionBody)


但是在Mozzila Firefox 55和Google Chrome中,都没有定义此构造函数:

javascript - AsyncFunction尚未定义,但MDN记录了它的用法-LMLPHP
javascript - AsyncFunction尚未定义,但MDN记录了它的用法-LMLPHP

我发现(async function() {}).constructor确实是AsyncFunction,但是为什么在全局范围内看不到它?

最佳答案

如Mozilla文档中所述:“请注意,AsyncFunction不是全局对象。”

因此,您不能像其他全局构造函数一样将其作为window对象的属性进行访问。必须通过查询async函数的实例来获得它:

从文档:

const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;

10-06 07:35