色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

javascript中new

在JavaScript中,我們經(jīng)常會(huì)使用關(guān)鍵字new來(lái)創(chuàng)建對(duì)象。new操作符用于創(chuàng)建對(duì)象實(shí)例,其過程分為四步:

1. 創(chuàng)建一個(gè)新對(duì)象。
2. 將該對(duì)象的__proto__屬性指向構(gòu)造函數(shù)的prototype屬性。
3. 執(zhí)行構(gòu)造函數(shù),并將該對(duì)象作為this傳入函數(shù)中。
4. 返回該對(duì)象。

例如:

function Person(name) {
this.name = name;
}
let person1 = new Person('Tom');
console.log(person1.name); // "Tom"

在上面的例子中,我們使用new來(lái)創(chuàng)建了一個(gè)Person對(duì)象實(shí)例,new操作符的作用是將Person函數(shù)變成了一個(gè)構(gòu)造函數(shù),從而可以通過該構(gòu)造函數(shù)創(chuàng)建出Person對(duì)象實(shí)例。

new操作符還有一個(gè)常見的應(yīng)用場(chǎng)景,就是使用構(gòu)造函數(shù)來(lái)實(shí)現(xiàn)繼承。比如我們有一個(gè)Person對(duì)象:

function Person(name) {
this.name = name;
}
Person.prototype.sayHi = function() {
console.log('Hi, I am ' + this.name);
}
let person1 = new Person('Tom');

我們想要?jiǎng)?chuàng)建一個(gè)Student對(duì)象,繼承自Person對(duì)象,那么可以這樣寫:

function Student(name, grade) {
this.grade = grade;
Person.call(this, name);
}
Student.prototype = new Person();
Student.prototype.constructor = Student;
let student1 = new Student('Jerry', 3);
student1.sayHi(); // "Hi, I am Jerry"

在這個(gè)例子中,我們通過new操作符來(lái)創(chuàng)建了一個(gè)Person實(shí)例,并將其作為Student.prototype的原型,然后再將Student.prototype的constructor指向Student本身,這樣我們就使用構(gòu)造函數(shù)實(shí)現(xiàn)了繼承。

當(dāng)然,有些情況下我們也可以使用Object.create()來(lái)實(shí)現(xiàn)繼承,這種方式也是比較常見的。比如上述例子中的Student對(duì)象,我們也可以這樣來(lái)寫:

function Student(name, grade) {
this.grade = grade;
Person.call(this, name);
}
Student.prototype = Object.create(Person.prototype);
Student.prototype.constructor = Student;
let student1 = new Student('Jerry', 3);
student1.sayHi(); // "Hi, I am Jerry"

在這個(gè)例子中,我們使用Object.create()來(lái)創(chuàng)建了一個(gè)以Person.prototype為原型的新對(duì)象,并將其賦值給了Student.prototype,因此Student.prototype繼承了Person.prototype,達(dá)到了同樣的繼承效果。

總之,在JavaScript中,new操作符的作用主要是創(chuàng)建對(duì)象實(shí)例和實(shí)現(xiàn)繼承。我們可以通過構(gòu)造函數(shù)來(lái)創(chuàng)建自己的對(duì)象,并通過原型鏈的方式實(shí)現(xiàn)繼承。