前端new運算子建立了一個新的物件範例。具體步驟:1、建立一個空的簡單JavaScript物件;2、將這個空物件的「__proto__」屬性指向建構函數的原型物件;3、將建構函式內部的this關鍵字指向這個新建立的空物件;4 、執行建構子內部的程式碼,為這個新對象添加屬性和方法;5、如果構造函數返回了一個對象,則返回這個對象,否則返回這個新創建的對像等等。
本教學作業系統:Windows10系統、Dell G3電腦。
在前開發中,new操作符是用來建立一個新的物件範例的。當使用new運算元時,它會執行以下步驟:
建立一個空的簡單JavaScript物件(即{})。
將這個空物件的__proto__屬性指向建構函數的原型物件。
將建構子內部的this關鍵字指向這個新建立的空物件。
執行建構子內部的程式碼,為這個新物件新增屬性和方法。
如果建構子回傳了一個對象,則傳回這個物件;否則傳回這個新建立的物件。
下面我們來詳細分析這個過程:
建立一個空的簡單JavaScript物件:這個空物件將會成為將要建立的實例物件。這個物件會繼承建構函式的原型物件上的屬性和方法。
將這個空物件的__proto__屬性指向建構函數的原型物件:原型物件是包含可繼承屬性和方法的物件。在JavaScript中,每個函數都有一個prototype屬性,指向它的原型物件。當我們使用new操作符建立一個物件時,這個新物件的__proto__屬性就會指向建構函數的原型物件。
將建構函數內部的this關鍵字指向這個新建立的空物件:在建構函式內部,透過使用this關鍵字,我們可以為這個新物件新增屬性和方法。 this關鍵字在這裡指涉了目前正在建立的實例物件。
執行建構函式內部的程式碼,為這個新物件加入屬性和方法:在建構函式內部,我們可以為這個新物件新增屬性和方法,以便將其初始化為我們想要的狀態。
如果建構函式回傳了一個對象,則傳回這個物件;否則傳回這個新建立的物件:如果建構函式內部有回傳語句,並且傳回的是一個對象,則傳回這個物件;否則傳回剛剛建立的新物件。這意味著我們可以在建構函數內部傳回一個自訂的對象,而不一定是this所指向的對象。
使用new運算元建立一個物件實例時,我們會建立一個空對象,並將它的__proto__屬性指向建構函數的原型對象。然後,建構函式內部的程式碼會被執行,以便在這個新物件中加入屬性和方法。最後,如果建構函式內部有回傳語句,則傳回指定的物件;否則傳回這個新建立的物件。這樣,我們就可以使用建構函式來建立多個實例對象,它們都可以共用建構函式的原型對像上的屬性和方法。
以上是前端new運算子做了什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!