Members
(constant) PENDING
- Source:
Promise手写(https://www.jianshu.com/p/89f6409a7936)
创建三变量记录表示状态
用that保存this,避免后期闭包导致this的指向不对
value 变量用于保存 resolve 或者 reject 中传入的值
resolvedCallbacks 和 rejectedCallbacks 用于保存 then 中的回调,
因为当执行完 Promise 时状态可能还是等待中,这时候应该把 then 中的回调保存起来用于状态改变时使用
Methods
objectFactory()
- Source:
New手写
用new Object() 的方式新建了一个对象 obj
取出第一个参数,就是我们要传入的构造函数。此外因为 shift 会修改原数组,所以 arguments 会被去除第一个参数
将 obj 的原型指向构造函数,这样 obj 就可以访问到构造函数原型中的属性
使用 apply,改变构造函数 this 的指向到新建的对象,这样 obj 就可以访问到构造函数中的属性
返回 obj
考虑构造函数又返回值的情况:
如果构造函数返回一个对象,那么我们也返回这个对象
如上否则,就返回默认值