第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開(kāi)發(fā)者教程

JavaScript 入門教程

首頁(yè) 慕課教程 JavaScript 入門教程 JavaScript 入門教程 JavaScript new操作符和構(gòu)造函數(shù)

new 運(yùn)算符與構(gòu)造函數(shù)

當(dāng)一個(gè)函數(shù)被 new 運(yùn)算符調(diào)用的時(shí)候,這個(gè)函數(shù)就會(huì)被稱為構(gòu)造函數(shù)。

任何函數(shù)都能被 new 運(yùn)算符調(diào)用,但是一般會(huì)從設(shè)計(jì)上將一個(gè)函數(shù)考慮為構(gòu)造函數(shù),提供給 new 運(yùn)算符調(diào)用。

function Human(name, gender) {
  this.name = name;
  this.gender = gender;
}

var human = new Human();

1. 構(gòu)造函數(shù)的作用

構(gòu)造函數(shù)的主要作用是用于生成對(duì)象。

有其他面向?qū)ο笳Z(yǔ)言開(kāi)發(fā)經(jīng)驗(yàn)的同學(xué)可能會(huì)覺(jué)得使用 new 運(yùn)算符的語(yǔ)法和創(chuàng)建類的實(shí)例很像,其實(shí)本質(zhì)是不一樣的。

結(jié)合原型的特性,在 JavaScript 中也能實(shí)現(xiàn)類似于類的一套機(jī)制。

關(guān)于構(gòu)造函數(shù)和原型的處理關(guān)系,原型章節(jié)已經(jīng)有詳細(xì)介紹,具體內(nèi)容可以參考原型章節(jié)。

2. new 運(yùn)算符的運(yùn)算機(jī)制

使用 new 運(yùn)算符調(diào)用函數(shù)的時(shí),背后有一套運(yùn)行機(jī)制,這套機(jī)制說(shuō)明了構(gòu)造函數(shù)是怎么產(chǎn)生對(duì)象的。

當(dāng) new 運(yùn)算符調(diào)用函數(shù)時(shí),大致會(huì)進(jìn)行以下幾個(gè)操作:

  1. 創(chuàng)建一個(gè)空對(duì)象
  2. 將函數(shù)的this指向這個(gè)空對(duì)象
  3. 執(zhí)行函數(shù)
  4. 如果函數(shù)沒(méi)有指定返回值,則直接返回 this(一開(kāi)始創(chuàng)建的空對(duì)象),否則返回指定返回值
function Person(name, gender, age) {
  this.name = name;
  this.gender = gender;
  this.age = age;
}

var person = new Person('小明', '男', 17);

console.log(person.name);

這樣就能理解為什么使用 new 操作符可以生成對(duì)象了。

這個(gè)機(jī)制也是面試的高頻題。

3. 小結(jié)

構(gòu)造函數(shù)用于生成對(duì)象,理解構(gòu)造函數(shù)和原型機(jī)制非常重要,不但是面試中的高頻題,也可以提升編寫高質(zhì)量、可復(fù)用的代碼的能力。