手写 myNew:模拟 new 操作符的完整实现
1. 定义一个对象X
2. 将该对象X的隐式原型 绑定到 传入函数的 原型上
3. 改变传入函数 this 指向执行传入对象,并接受返回结果
4. 如果结果是对象,那么就返回这个对象;否则返回对象X
function myNew (func, ...args) {
const obj = {};
obj.__proto__ = func.prototype;
let res = func.apply(obj, args);
return res instanceof Object ? res : obj;
}
来源整理自:vue3js.cn 面试官系列



