javaScript中new的过程
我们知道在js中new是对函数的构造调用可以实例化一个对象。其中的过程包括:
- 1 创建一个全新的对象
- 2 对象继承构造函数的原型
- 3 新对象会绑定到函数调用的this
- 4 返回这个新对象
接下来我们模拟new的过程
function myNew(func, ...args){
// 创建一个新对象
const obj = {};
// 新对象继承构造函数的原型
Object.setPrototypeOf(obj, func.prototype);
// this指向新对象
func.apply(obj, args);
// 返回新对象
return obj
}