js中new操作符做了:1、創建一個空對象,這個新對象將成為函數的實例;2、將新對象的原型鏈接到構造函數的原型對象,這樣新對象就可以訪問構造函數原型對象中定義的屬性和方法;3、將構造函數的作用域賦給新對象,這樣新對象就可以通過this關鍵字來引用構造函數中的屬性和方法;4、執行構造函數中的代碼,構造函數中的代碼將用于初始化新對象的屬性和方法;5、如果構造函數中沒有返回等等。
本教程操作系統:windows10系統、DELL G3電腦。
在JavaScript中,new操作符用于創建一個新的對象實例。當使用new操作符調用一個函數時,它將執行以下幾個步驟:
1. 創建一個空對象。這個新對象將成為函數的實例。
2. 將新對象的原型鏈接到構造函數的原型對象。這樣新對象就可以訪問構造函數原型對象中定義的屬性和方法。
3. 將構造函數的作用域賦給新對象。這樣新對象就可以通過this關鍵字來引用構造函數中的屬性和方法。
4. 執行構造函數中的代碼。構造函數中的代碼將用于初始化新對象的屬性。
5. 如果構造函數中沒有返回其他對象,那么new操作符將返回新創建的對象實例。否則,返回構造函數中返回的對象。
下面是一個示例,演示了new操作符的使用:
// 定義一個構造函數 function Person(name, age) { this.name = name; this.age = age; } // 使用new操作符創建一個Person對象實例 var person1 = new Person("John", 25); // person1現在是一個Person對象實例 console.log(person1.name); // 輸出: "John" console.log(person1.age); // 輸出: 25
登錄后復制
在上面的示例中,通過new操作符調用Person構造函數創建了一個新的Person對象實例。這個新對象實例的name屬性被設置為”John”,age屬性被設置為25。
需要注意的是,new操作符實際上是一個語法糖,它隱藏了一些底層細節。實際上,new操作符只是調用了構造函數,并且將構造函數的原型對象鏈接到新對象的原型鏈上。因此,我們也可以通過手動執行這些步驟來模擬new操作符的行為。
總結起來,new操作符在JavaScript中做了以下幾件事情:創建一個新對象、鏈接原型鏈、設置作用域、執行構造函數代碼,并返回新對象實例。這些步驟使得我們能夠使用構造函數來創建對象實例,并且可以在構造函數中對新對象進行初始化。