1.新建一个对象
2.将新对象的原型对象指向构造函数的原型对象
3.将新对象的this指向构造函数
4.判断如果当前的构造函数是否是对象,如果是对象则返回构造函数,如果不是则返回新创建的对象
function newFunc(Func) {
let obj = {}
Object.setPrototypeOf(obj,Func.prototype);
let res = Func.call(obj, arguments);
if (typeof res === 'object') {
return res;
} else {
return obj;
}
}