1.产生一个继承构造函数(设为func)的原型对象(即func.prototype)的新对象
2.执行构造函数,构造函数的this指向新对象
3.如果构造函数返回的是一个对象,那么最后返回的就是这个对象;否则返回的就是继承了构造函数的原型对象的新对象
//下面请看代码实现
let new = function(func){
let o = Obejct.create(func.prototype)//继承构造函数的原型对象
let k = func.call(o)//执行构造函数
if(typeof k === 'object'){
return k
}else{
return o
}
}