lizhongzhen11 / lizz-blog

前端学习
80 stars 6 forks source link

重学js —— 控制抽象对象之AsyncFunction对象 #132

Open lizhongzhen11 opened 4 years ago

lizhongzhen11 commented 4 years ago

AsyncFunction对象

// 不是全局对象,需要如下代码获取
Object.getPrototypeOf(async function(){}).constructor

构造器

AsyncFunction ( p1, p2, … , pn, body )

  1. 定义 C活跃的函数对象
  2. 定义 args 为通过 [[Call]][[Construct]] 方法传递给函数的 参数列表
  3. 返回 CreateDynamicFunction(C, NewTarget, async, args)

构造器上的属性

AsyncFunction.length

属于 数据属性,值为 1.属性描述符为 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: true }

AsyncFunction.prototype

初始值为 %AsyncFunction.prototype%。属性描述符为 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }

原型对象上的属性

注意

一般情况下,我们不会直接用 AsyncFunction 去创建异步函数,我们更多的是直接采用 https://github.com/lizhongzhen11/lizz-blog/issues/86 中定义的写法去创建异步函数。