首頁  >  文章  >  web前端  >  javascript中以new形式建立物件的過程

javascript中以new形式建立物件的過程

伊谢尔伦
伊谢尔伦原創
2016-12-10 09:36:101563瀏覽

JS的new操作到底做了些什麼呢?我們一步一步來看。

例如我定義了一個function,並執行new操作:

function Foo(){}
var foo = new Foo();

補補腦:
每一個函數中都會有一個叫prototype的屬性,類型是object,即一個引用對象。
每一個物件中都會有一個叫__proto__的屬性,類型野是object,也是一個引用物件。

首先,當JavaScript引擎執行new操作時,會馬上開啟一個區塊內存,建立一個空物件(並將this指向這個物件)。

接著,執行建構子Foo(),對這個空物件進行建構(建構函式裡有什麼屬性和方法都一一給這個空白物件組裝去,這就是為何它叫建構子了)。

然而,為這個空物件增加了一個叫做__proto__的屬性,而且這個__proto__指向Foo()的prototype物件。換句話說,就是__proto__ = prototype;


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn