JavaScript菜鳥教程

JavaScript 對(duì)象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊(cè)

JavaScript 對(duì)象構(gòu)造函數(shù)

在前面的章節(jié)中,我們學(xué)習(xí)了如何在JavaScript中創(chuàng)建對(duì)象。

前幾章中的示例是有限的。它們僅創(chuàng)建單個(gè)對(duì)象。

有時(shí)我們需要一個(gè)“ 模型”來創(chuàng)建許多相同類型的對(duì)象(示例)。

創(chuàng)建“模型”的方法是使用對(duì)象構(gòu)造函數(shù)

一個(gè)對(duì)象的構(gòu)造函數(shù)可以很容易地創(chuàng)建多個(gè)對(duì)象(示例)具有相同的屬性和方法。

在下面的示例中,function User()是一個(gè)對(duì)象構(gòu)造函數(shù):

  function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
  }

通過使用new關(guān)鍵字調(diào)用構(gòu)造函數(shù)來創(chuàng)建相同類型的對(duì)象:

var Seagull = new User("Seagull", "Anna", 22, "New Delhi");
var tarush = new User("Tarush", "Balodhi", 34, "Bihar");
測(cè)試看看?/?

正如您看到的,我們可以通過使用不同的參數(shù)調(diào)用User構(gòu)造函數(shù)來快速構(gòu)建大量不同的用戶對(duì)象。這與JavaScript在其內(nèi)置構(gòu)造函數(shù)(如Array()和Date())中使用的模式完全相同。

this關(guān)鍵字

JavaScript有一個(gè)特殊的關(guān)鍵字this,您可以在方法中使用它來引用當(dāng)前對(duì)象。

this在對(duì)象中使用時(shí),它的值是對(duì)象本身。

在構(gòu)造函數(shù)中this沒有值。它代替了新對(duì)象。創(chuàng)建新對(duì)象時(shí),this的值將成為新對(duì)象。

向?qū)ο筇砑訉傩?/h2>

為了向?qū)ο筇砑有聦傩?,您可以使用賦值運(yùn)算符(=)將新值分配給屬性。

Seagull.weapon = "Sword";
測(cè)試看看?/?

注意:該屬性將添加到Seagull中。不要。(不適用于任何其他User對(duì)象)。

向?qū)ο筇砑臃椒?/h2>

為了向?qū)ο筇砑有路椒?,您可以使用賦值運(yùn)算符(=)將新函數(shù)分配給屬性。

Seagull.greet = function() {
return "Hello World";
};
測(cè)試看看?/?

注意:該方法將被添加到Seagull中。(不指向任何其他User對(duì)象)。

向構(gòu)造函數(shù)添加屬性

我們不能像向現(xiàn)有對(duì)象添加新屬性那樣,向構(gòu)造函數(shù)添加新屬性:

User.weapon = "Sword";
測(cè)試看看?/?

要向構(gòu)造函數(shù)添加新屬性,必須將其添加到構(gòu)造函數(shù)中:

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
   this.weapon = "Sword";
}
測(cè)試看看?/?

有時(shí),我們希望在后期將新屬性添加到一個(gè)構(gòu)造函數(shù)中,該構(gòu)造函數(shù)將在所有對(duì)象(示例)之間共享。答案是對(duì)象原型。

向構(gòu)造函數(shù)添加方法

構(gòu)造函數(shù)也可以定義方法。

我們不能像向現(xiàn)有對(duì)象添加新方法一樣,向構(gòu)造函數(shù)添加新方法。

向?qū)ο筇砑臃椒ū仨氃跇?gòu)造函數(shù)內(nèi)完成。

function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
   this.fullName = function() {
   return this.firstName + " " + this.lastName;
   };
}
測(cè)試看看?/?

有時(shí)我們想在后期向構(gòu)造函數(shù)添加新方法,該方法將將在所有對(duì)象(示例)之間共享。答案是對(duì)象原型

JavaScript 內(nèi)置構(gòu)造函數(shù)

JavaScript具有以下用于本機(jī)對(duì)象的內(nèi)置構(gòu)造函數(shù):

let x1 = new String(); //一個(gè)新的String對(duì)象。
let x2 = new Number(); //一個(gè)新的number對(duì)象。
let x3 = new Boolean(); //一個(gè)新的布爾對(duì)象。
let x4 = new Object(); //一個(gè)新Object對(duì)象。
let x5 = new Array(); //一個(gè)新的Array對(duì)象。
let x6 = new RegExp(); //一個(gè)新的RegExp對(duì)象。
let x7 = new Date(); //一個(gè)新的date對(duì)象。
let x8 = new Function(); //一個(gè)新函數(shù)對(duì)象。
測(cè)試看看?/?

不要將Number、String或Boolean聲明為對(duì)象

正如你可以在上面看到,JavaScript有基本數(shù)據(jù)類型的對(duì)象有String,Number和Boolean。

我們沒有理由創(chuàng)建復(fù)雜的對(duì)象。因?yàn)樵贾狄斓枚唷?/p>

始終將數(shù)字,字符串或布爾值視為原始值。不作為對(duì)象。

將這些類型聲明為對(duì)象會(huì)降低執(zhí)行速度,并產(chǎn)生意外結(jié)果。

var str1 = "New Delhi";
var str2 = new String("New Delhi");

document.write(str1 === str2); // 返回錯(cuò)誤,因?yàn)閟tr1和str2具有不同的類型
測(cè)試看看?/?

無法比較對(duì)象:

var str1 = new String("New Delhi");
var str2 = new String("New Delhi");

document.write(str1 == str2); // 返回錯(cuò)誤,因?yàn)閟tr1和str2具有不同的類型
document.write(str1 === str2); // r返回錯(cuò)誤,因?yàn)閟tr1和str2具有不同的類型
測(cè)試看看?/?

也可以這樣做:

  • 使用{}代替new Object()

  • 使用""代替new String()

  • 使用0代替new Number()

  • 使用false代替new Boolean()

  • 使用[]代替new Array()

  • 使用/()/代替new RegExp()

  • 使用function (){}代替new Function()

let x1 = {};
let x2 = "";
let x3 = 0;
let x4 = false;
let x5 = [];
let x6 = /()/;
let x7 = function(){};
測(cè)試看看?/?

字符串基元和字符串對(duì)象

通常,JavaScript字符串是由字面量創(chuàng)建的原始值:var city = "New Delhi";。

但是,也可以使用new關(guān)鍵字,將字符串定義為對(duì)象: var city = new String("New Delhi");。

在“ JS字符串 ”一章中了解為什么不應(yīng)將字符串創(chuàng)建為對(duì)象。

數(shù)字基元和數(shù)字對(duì)象

通常,JavaScript數(shù)字是由字面量創(chuàng)建的原始值:var num = 50;。

但是,也可以使用new關(guān)鍵字,將數(shù)字定義為對(duì)象:var num = new Number(50);。

在“ JS Numbers ”一章中了解為什么不應(yīng)該將數(shù)字創(chuàng)建為對(duì)象。

布爾基元和布爾對(duì)象

通常,JavaScript字布爾值是由字面量創(chuàng)建的原始值:var x = false;。

但是,也可以使用new關(guān)鍵字,將布爾值定義為對(duì)象:var x = new Boolean(false);。

在“ JS布爾值 ”一章中了解為什么不應(yīng)該將布爾值創(chuàng)建為對(duì)象。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清