js new

var a = new A('hi');數組

執行new過程:

1.一個新對象被建立。var o = new Object();函數

2.o繼承自A.prototype。o._proto_ = A.prototype;this

3.構造函數A被執行。執行的時候,相應的傳參會被傳入,同時上下文(this)會被指定爲這個新實例。prototype

4.若是構造函數返回了一個「對象」,那麼這個對象會取代整個new出來的結果,經過new返回實例化的對象。若是構造函數沒有返回對象,那麼new出來的結果爲步驟1建立的對象,經過new返回函數內返回的對象。ps:通常狀況下構造函數不返回任何值,不過用戶若是想覆蓋這個返回值,能夠本身選擇返回一個普通對象來覆蓋。固然,返回數組也會覆蓋,由於數組也是對象。code

相關文章
相關標籤/搜索