new的过程: 1、创建新对象 2、新对象的proto指向构造函数的prototype 3、执行构造函数,this上下文指向新对象 4、构造函数返回了对象,放弃之前的对象,返回新的对象;反之,返回之前建立的对象。 function newObj(func) { var obj = new Object() obj.__proto__ = func.prototype var o = func.call(obj) if (typeof o === 'object') { return o } el…