在平常的面试或者笔试过程当中,你们常常会遇到“new操做符具体干了什么?”面试
若是就回答建立了一个对象。那就很是抱歉了,确定就挂了,并且在面试官看来你就是就是菜鸟一枚,那咱们就来看下致使干了什么?bash
我百度了一下,都基本进行了简要描述,我这里总结了如下,具体进行了四个步骤函数
1,建立一个空对象 var obj = new Object();ui
2,让空对象的原型属性指向原型链,设置原型链 obj._proto_=Func.prototype;this
3,让构造函数的this指向obj,并执行函数体 var result=Func.call(obj);spa
4,判断返回类型,若是是值就返回这个obj,若是是引用类型,返回这个引用对象。prototype
好的,那咱们就按照这个步骤来实现一个New函数。code
function New () {
var obj = new Object();
obj._proto_ = Object.prototype;
Object.call(obj);
return typeof result === 'object'? result : obj;
}复制代码