亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

JavaScript菜鳥教程

JavaScript 對象

JavaScript 函數(shù)

JS HTML DOM

JS 瀏覽器BOM

AJAX 菜鳥教程

JavaScript 參考手冊

JavaScript 創(chuàng)建對象

對象是由屬性方法的集合組成的數(shù)據(jù)類型。

就像許多其他編程語言一樣,可以將JavaScript中的對象與現(xiàn)實生活中的對象進行比較。

在JavaScript中,基本上所有東西都是對象:

  • 字符串可以是對象(如果使用new關鍵字定義)

  • 數(shù)字可以是對象(如果使用new關鍵字定義)

  • 布爾值可以是對象(如果使用new關鍵字定義)

  • 日期始終是對象

  • 數(shù)學永遠是對象

  • 數(shù)組始終是對象

  • 正則表達式始終是對象

  • 函數(shù)永遠是對象

  • Object就是對象

除原語外,所有JavaScript值都是對象。

JavaScript基元

原始值是沒有屬性或方法的值。

在JavaScript中,有5種原始類型:

  • string

  • number

  • boolean

  • null

  • undefined

對象是變量

JavaScript變量只能包含一個值。

var user = "(cainiaoplus.com)";
測試看看?/?

對象也是變量,但是對象可以包含許多值。

可以將對象寫為name:value對,并用冒號(:)分隔。

var user = {firstName:"維沙爾", lastName:"喬達里", age:22, location:"新德里"};
測試看看?/?

JavaScript對象是無序?qū)傩缘募稀?/p>

對象屬性

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

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

屬性屬性值
firstName維沙爾
lastName喬達里
age22
location新德里

您將在下一章中了解有關屬性的更多信息。

對象方法

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

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

屬性適當?shù)膬r值
firstName維沙爾
lastName喬達里
age22
location新德里
getNamefunction() {返回 this.firstName + " " + this.lastName;}

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

創(chuàng)建一個JavaScript對象

JavaScript有許多預定義的對象。另外,您可以創(chuàng)建自己的對象。

有多種創(chuàng)建新對象的方法:

  • 使用對象常量,它使用大括號:{}

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

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

使用對象常量

使用對象常量是創(chuàng)建JavaScript對象的最簡單方法。

使用對象常量,您可以在一個語句中定義和創(chuàng)建一個對象。

下面的示例創(chuàng)建一個具有四個屬性的新JavaScript對象:

var user = {firstName:"維沙爾", lastName:"喬達里", age:22, location:"新德里"};
測試看看?/?

對象定義可以跨越多行:

var user = {
  firstName: "維沙爾",
  lastName : "喬達里",
  age  : 22,
  location : "新德里"
};
測試看看?/?

使用new Object()

使用對象構造函數(shù)是創(chuàng)建JavaScript對象的另一種方法。

下面的示例創(chuàng)建一個具有四個屬性的新JavaScript對象:

var user = new Object();

user.firstName = "維沙爾";
user.lastName = "喬達里";
user.age = 22;
user.location = "新德里";
測試看看?/?

上面的兩個示例完全相同。無需使用new Object()。

使用對象字面量是更常見和首選的方法,因為它不太可能出現(xiàn)不一致和意外結(jié)果。

使用構造函數(shù)

另外,您可以通過以下兩個步驟創(chuàng)建對象:

  • 通過編寫構造函數(shù)定義對象類型(約定中使用大寫首字母)

  • 使用new關鍵字創(chuàng)建對象的示例

下面的示例通過編寫構造函數(shù)定義對象類型:

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

現(xiàn)在我們可以創(chuàng)建一個名為user1的對象,如下所示:

var user1 = new User("維沙爾", "喬達里", 22, "新德里");
測試看看?/?

我們將在本教程的后面部分討論構造函數(shù)。

JavaScript對象是可變的

可變是一種可以更改的變量。在JavaScript中,只有對象和數(shù)組是可變的,不是原始值。

可變對象是一種對象,其狀態(tài)在創(chuàng)建后即可修改。

不可變對象是一旦創(chuàng)建對象便無法更改其狀態(tài)的對象。

字符串數(shù)字不可變的。讓我們用一個示例來理解這一點:

  var immutableString = "Hello";
  
  // 在上面的代碼中,創(chuàng)建了一個帶有字符串值的新對象。
  
  immutableString = immutableString + "World";
  
  // 我們現(xiàn)在將“World”附加到現(xiàn)有值。

在將“ immutableString”附加到字符串值后,將發(fā)生以下事件:

  • 檢索“ immutableString”的現(xiàn)有值

  • “World”附加到“ immutableString”的現(xiàn)有值之后

  • 然后將結(jié)果值分配給新的內(nèi)存塊

  • 現(xiàn)在," immutableString" 對象指向新創(chuàng)建的內(nèi)存空間

  • 以前創(chuàng)建的內(nèi)存空間現(xiàn)在可用于垃圾回收

對象是可變的:它們是通過引用而不是值來尋址的。

如果user是對象,則以下語句將不會創(chuàng)建該用戶的副本:

  var x = user;  // 這不會創(chuàng)建user副本.

對象x不是user的副本,它是user。x和user是同一個對象。

對x的任何更改也將更改user,因為x和user是相同的對象。

var user = {firstName:"維沙爾", lastName:"喬達里", age:22, location:"新德里"};

var x = user;
x.location = "Goa";// 這將同時更改x.location和user.location
測試看看?/?

比較對象

在JavaScript中,對象是引用類型。即使兩個不同的對象具有相同的屬性,它們也永遠不會相等。

// 兩個變量,兩個具有相同屬性的不同對象
var fruit = {name: "apple"};
var fruitbear = {name: "apple"};

fruit == fruitbear;  // 返回 false
fruit === fruitbear; // 返回 false
測試看看?/?

僅將同一對象引用與其自身進行比較會得出true:

// 兩個變量,一個對象
var fruit = {name: "apple"};
var fruitbear = fruit;  // 將fruit對象引用分配給fruitbear

// 這里的fruit 和 fruitbear 都指向同一個對象
fruit == fruitbear; // 返回 true
fruit === fruitbear; // 返回 true
測試看看?/?