function New(fn, ...args) {
const instance = {}; //创建一个空的实例对象
const result = fn.call(instance, ...args); //改变构造函数中的this指向并且传入参数,执行该构造函数
instance.__proto__ = fn.prototype //实例的__proto__指向构造函数的prototype,使得对象可以访问到构造函数原型上的属性
return result instanceof Object ? result : instance; //构造函数如果返回的是引用类型,就返回该值,如果不是引用类型,则返回新创建的实例
}
08-09
184
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交