在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;
}複製代碼
相關文章
相關標籤/搜索