在JS中New操做符具体干了什么?

在平常的面试或者笔试过程当中,你们常常会遇到“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;
}复制代码
相关文章
相关标签/搜索