function Person(name, age) {
this.name = name
this.age = age
this.say = function() {
return `he is ${this.name} ${this.age}`
}
}
function newFunc (Constructor, ...args) {
// 创建新对象
const obj = {}
// 新对象的__proto__等于构造函数的prototype
obj.__proto__ = Constructor.prototype
// 新对象作为构造函数的this
let result = Constructor.apply(obj, args)
return result || obj
}
const person = new newFunc(Person, 'labike', 19)
console.log(person.say())