new的啥时候发生了什么 首先创建一个空的实例对象将构造函数的prototype等于实例对象的__proto__通过使用call方法执行构造函数并把this绑定到实例对象上执行函数体中的语句,如果函数没有返回其它对象,那么new构造函数会自动返回这个新对象 function Fn (...rest) { return {} // 返回对象时,此时fn对象为返回对象 // or // return // 非对象时,返回原来的对象 } const fn = {} Fn.prototype = fn.__proto__ Fn.call(fn, ..rest)