
首先看看new具备哪些功能:
但还要考虑一点,构造函数里可以返回一个自己设置的值,这个值es有这样的规范:
遇上返回Object就返回自身,否则返回构造的Object。
function _new(func,...arg){ // 1. 创立一个对象,对象的原型指向构造函数的prototype。 let obj=Object.create(func.prototype) // 将构造函数里的this指向这个对象,病执行构造函数里的语句 const ret=fn.appay(obj,arg) // 遇上返回Object就返回自身,否则返回构造的Object return ret instanceof Object?ret:obj}