function person(name){
this.name= name;
this.say=function(){
console.log('我是'+this.name+'的say方法')
}
}
var p=new person('小米')
console.log(p.name,p.say())
function _new(func,...args){
//1.创建一个空对象,并把对象的proto=被创建的这个对象的prototype
// let obj={}
// obj.__proto__=func.prototype
let obj=Object.create(func.prototype)
//2. 执行func函数,改变func函数中this的指向
let result =func.call(obj,...args)
//3.判断result的类型进行返回
if(!!result &&/^(function|object)$/.test(typeof result)){return result}
return obj
}
var p2=_new(person,'小米')
console.log(p2.name)
console.log(p2.say())