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






