function myNew(fn, ...args) {
//创建一个构造函数
let obj = {};
//将构造函数的原型指空对象
Object.setPrototypeOf(obj, fn.prototype)
//改变this的指向,让this指向新的原型对象
let res = fn.apply(obj, [...args])
//确保new返回的是一个Object对象
return res instanceof Object ? res : obj;
}