JavaScript菜鳥教程

JavaScript 對象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊

JavaScript 對象(Object)

理解JavaScript對象

JavaScript中的對象是一種數(shù)據(jù)類型,由名稱的集合組成,以名稱:值對表示。

name:value對可以包含可以包含任何數(shù)據(jù)類型的屬性(包括字符串,數(shù)字和布爾值)以及方法,這些方法是對象中包含的函數(shù)。

JavaScript中的對象是獨(dú)立的實(shí)體,可以與現(xiàn)實(shí)生活中的對象進(jìn)行比對。

例如,汽車具有名稱和顏色等屬性以及諸如start(啟動(dòng))和stop(停止)之類的方法的對象:

對象屬性方法

car.name =天蝎座
car.model = 600
car.color =紅色
car.horsePower = 103KW

car.start()
car.drive()
car.brake()
car.stop()

所有汽車都具有相同的屬性,但是每個(gè)汽車的屬性值都不同。

所有汽車都有相同的方法,但是這些方法可以具有不同的功能。

創(chuàng)建一個(gè)對象

對象是JavaScript數(shù)據(jù)類型,就像數(shù)字或字符串也是數(shù)據(jù)類型一樣。作為數(shù)據(jù)類型,對象可以包含在變量中。

使用JavaScript構(gòu)造對象有多種方法:

  • 使用對象常量,它使用大括號(hào):{}

  • 使用對象構(gòu)造函數(shù),它使用new Object()

  • 或者,您可以先創(chuàng)建一個(gè)構(gòu)造函數(shù),然后示例化一個(gè)調(diào)用該函數(shù)的對象

在此示例中,我們將使用 對象字面量(object literal)。什么是字面量?用來為變量賦值時(shí)的常數(shù)量稱為字面量

var user = {firstName:"Vishal", lastName:"Choudhary", age:22, location:"New Delhi"};
測試看看?/?

一個(gè)對象定義可以跨越多行。

var user = {
  firstName: "Vishal",
  lastName: "Choudhary",
  age: 22,
  location: "New Delhi"
};
測試看看?/?

在本教程的后面,我們將討論對象構(gòu)造函數(shù)構(gòu)造函數(shù)。

對象屬性

屬性是對象中名稱和值之間的關(guān)聯(lián),并且可以包含任何數(shù)據(jù)類型。

屬性通常是指對象的特征。

屬性屬性值
firstName維沙爾
lastName喬達(dá)里
age22
location新德里

訪問對象屬性

有兩種訪問對象屬性的方法:

  • 點(diǎn)表示法: .

  • 括號(hào)符號(hào): []

讓我們重新訪問原始示例對象user

user.firstName;
測試看看?/?
user["firstName"];
測試看看?/?

點(diǎn)號(hào)和括號(hào)都經(jīng)常使用。但是,點(diǎn)表示法更快,更易讀。

對象方法

方法是作為對象屬性值的函數(shù),因此是對象可以執(zhí)行的任務(wù)。

方法存儲(chǔ)在屬性中作為函數(shù)定義。

屬性屬性值
firstName維沙爾
lastName喬達(dá)里
age22
location新德里
getNamefunction() {return this.firstName + " " + this.lastName;}
  var user = {
  firstName: "Vishal",
  lastName : "Choudhary",
  age  : 22,
  location : "New Delhi",
  getName  : function() {
   return this.firstName + " " + this.lastName;
  }
  };

注意:方法是作為屬性存儲(chǔ)的函數(shù)。

訪問對象方法

為了檢索一個(gè)對象方法,您可以像調(diào)用常規(guī)函數(shù)一樣調(diào)用它,只是將其附加到對象變量上。

user.getName();
測試看看?/?

如果訪問不帶()括號(hào)的方法,它將返回函數(shù)定義:

user.getName;
測試看看?/?

什么是“this”關(guān)鍵字

您可能已經(jīng)注意到我們的方法有些奇怪。以這個(gè)為例:

  getName: function() {
   return this.firstName + " " + this.lastName;
  }

this關(guān)鍵字是指代碼被寫入內(nèi)部當(dāng)前對象-所以在這種情況下,this等同于user。

換句話說,this.firstName表示此對象的firstName屬性。

您可以在JS this教程JS this關(guān)鍵字了解有關(guān)該關(guān)鍵字的更多信息。

您一直都在使用對象

當(dāng)您瀏覽這些示例時(shí),您可能一直在思考所使用的點(diǎn)符號(hào)非常熟悉。那是因?yàn)槟谡麄€(gè)教程中一直在使用它。

每次我們遍歷使用內(nèi)置JavaScript對象的示例時(shí)。

當(dāng)您使用以下行訪問文檔對象模型時(shí):

  document.write("Hello world");
  document.getElementById("para");

您正在使用Document類示例上可用的方法。對于每個(gè)加載的網(wǎng)頁,都會(huì)創(chuàng)建一個(gè)Document示例,稱為document,它代表整個(gè)頁面的結(jié)構(gòu),內(nèi)容和其他功能,例如URL。同樣,這意味著它具有幾種可用的常用方法/屬性。

new 關(guān)鍵字

當(dāng)使用關(guān)鍵字聲明JavaScript變量時(shí)new,該變量將作為對象創(chuàng)建:

  var a = new Number();  // 將a聲明為Number對象
  var b = new String();  // 將b聲明為String對象
  var c = new Boolean();   // 將c聲明為Boolean對象

避免使用String,NumberBoolean對象。它們會(huì)使您的代碼復(fù)雜化,并降低執(zhí)行速度。

您將在本教程的后面部分了解有關(guān)對象的更多信息。

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