首頁  >  文章  >  web前端  >  前端new運算子做了什麼

前端new運算子做了什麼

DDD
DDD原創
2023-11-13 14:20:291307瀏覽

前端new運算子建立了一個新的物件範例。具體步驟:1、建立一個空的簡單JavaScript物件;2、將這個空物件的「__proto__」屬性指向建構函數的原型物件;3、將建構函式內部的this關鍵字指向這個新建立的空物件;4 、執行建構子內部的程式碼,為這個新對象添加屬性和方法;5、如果構造函數返回了一個對象,則返回這個對象,否則返回這個新創建的對像等等。

前端new運算子做了什麼

本教學作業系統:Windows10系統、Dell G3電腦。

在前開發中,new操作符是用來建立一個新的物件範例的。當使用new運算元時,它會執行以下步驟:

  1. 建立一個空的簡單JavaScript物件(即{})。

  2. 將這個空物件的__proto__屬性指向建構函數的原型物件。

  3. 將建構子內部的this關鍵字指向這個新建立的空物件。

  4. 執行建構子內部的程式碼,為這個新物件新增屬性和方法。

  5. 如果建構子回傳了一個對象,則傳回這個物件;否則傳回這個新建立的物件。

下面我們來詳細分析這個過程:

建立一個空的簡單JavaScript物件:這個空物件將會成為將要建立的實例物件。這個物件會繼承建構函式的原型物件上的屬性和方法。

將這個空物件的__proto__屬性指向建構函數的原型物件:原型物件是包含可繼承屬性和方法的物件。在JavaScript中,每個函數都有一個prototype屬性,指向它的原型物件。當我們使用new操作符建立一個物件時,這個新物件的__proto__屬性就會指向建構函數的原型物件。

將建構函數內部的this關鍵字指向這個新建立的空物件:在建構函式內部,透過使用this關鍵字,我們可以為這個新物件新增屬性和方法。 this關鍵字在這裡指涉了目前正在建立的實例物件。

執行建構函式內部的程式碼,為這個新物件加入屬性和方法:在建構函式內部,我們可以為這個新物件新增屬性和方法,以便將其初始化為我們想要的狀態。

如果建構函式回傳了一個對象,則傳回這個物件;否則傳回這個新建立的物件:如果建構函式內部有回傳語句,並且傳回的是一個對象,則傳回這個物件;否則傳回剛剛建立的新物件。這意味著我們可以在建構函數內部傳回一個自訂的對象,而不一定是this所指向的對象。

使用new運算元建立一個物件實例時,我們會建立一個空對象,並將它的__proto__屬性指向建構函數的原型對象。然後,建構函式內部的程式碼會被執行,以便在這個新物件中加入屬性和方法。最後,如果建構函式內部有回傳語句,則傳回指定的物件;否則傳回這個新建立的物件。這樣,我們就可以使用建構函式來建立多個實例對象,它們都可以共用建構函式的原型對像上的屬性和方法。

以上是前端new運算子做了什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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