function newFun(fun, ...args) {
//1 创建一个空对象
let obj = {}
//2 将空对象的隐式属性__proto指向构造函数的原型属性prototype
obj.__proto = fun.prototype
//3 将构造函数this绑定绑定到空对象
let result = fun.apply(obj, args)
//4 返回根据构造函数反正的值判断,如果是引用类型,则返回引用类型,否则返回新创建的空对象
return result instanceof Object ? result : obj
}
js new操作符
最新推荐文章于 2024-10-01 20:12:28 发布