function CreateStudent(name) {
this.name = name
}
let student = new CreateStudent('xiaoming')
function selfNew () {
console.log(arguments[0])
// 获取函数
const Func = arguments[0]
// 获取函数参数
const params = Array.prototype.slice.call(arguments, 1)
// 创建新的对象构造函数的原型挂载到新对象上
let self = Object.create(Func.prototype)
// 执行原来的函数进行初始化操作
Func.apply(self, params)
// 返回新的对象
return self
}
console.log(student, selfNew(CreateStudent, '小明'))
运行效果图: