JavaScript 對象定義

JavaScript 對象定義


JavaScript 對象定義


  • JS 表單 API
  • JS 對象屬性

在 JavaScript 中,對象是王。如果您理解了對象,就理解了 JavaScript。

在 JavaScript 中,幾乎“所有事物”都是對象。

  • 布爾是對象(如果用 new 關鍵詞定義)
  • 數字是對象(如果用 new 關鍵詞定義)
  • 字符串是對象(如果用 new 關鍵詞定義)
  • 日期永遠都是對象
  • 算術永遠都是對象
  • 正則表達式永遠都是對象
  • 數組永遠都是對象
  • 函數永遠都是對象
  • 對象永遠都是對象

所有 JavaScript 值,除了原始值,都是對象。

JavaScript 原始值

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

原始數據類型指的是擁有原始值的數據。

JavaScript 定義了 5 種原始數據類型:

  • string
  • number
  • boolean
  • null
  • undefined

原始值是一成不變的(它們是硬編碼的,因此不能改變)。

假設 x = 3.14,您能夠改變 x 的值。但是您無法改變 3.14 的值。

值 類型 註釋 "Hello" string "Hello" 始終是 "Hello" 3.14 number 3.14 始終是 3.14 true boolean true 始終是 true false boolean false 始終是 false null null (object) null 始終是 null undefined undefined undefined 始終是 undefined

對象是包含變量的變量

JavaScript 變量能夠包含單個的值:

實例

<code>var person = "Bill Gates";/<code>

親自試一試

對象也是變量。但是對象能夠包含很多值。

值按照名稱 : 值對的形式編寫(名稱和值以冒號分隔)。

實例

<code>var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};/<code>

親自試一試

JavaScript 對象是命名值的集合。

對象屬性

JavaScript 對象中的命名值,被稱為屬性。

屬性 值 firstName Bill lastName Gates age 62 eyeColor blue

以名稱值對書寫的對象類似於:

  • PHP 中的關聯數組
  • Python 中的字典
  • C 中的哈希表
  • Java 中的哈希映射
  • Ruby 和 Perl 中的散列

對象方法

方法是可以在對象上執行的動作。

對象屬性可以是原始值、其他對象以及函數。

對象方法是包含函數定義的對象屬性。

屬性 值 firstName Bill lastName Gates age 62 eyeColor blue fullName function() {return this.firstName + " " + this.lastName;}

JavaScript 對象是被稱為屬性和方法的命名值的容器。

您將在下一章中學到更多有關方法的知識。

創建 JavaScript 對象

通過 JavaScript,您能夠定義和創建自己的對象。

有不同的方法來創建對象:

  • 定義和創建單個對象,使用對象文字。
  • 定義和創建單個對象,通過關鍵詞 new。
  • 定義對象構造器,然後創建構造類型的對象。

在 ECMAScript 5 中,也可以通過函數 Object.create() 來創建對象。

使用對象字面量

這是創建對象最簡答的方法。

使用對象文字,您可以在一條語句中定義和創建對象。

對象文字指的是花括號 {} 中的名稱:值對(比如 age:62)。

下面的例子創建帶有四個屬性的新的 JavaScript 對象:

實例

<code>var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};/<code>

親自試一試

空格和折行不重要。對象定義可橫跨多行:

實例

<code>var person = {
firstName:"Bill",
lastName:"Gates",
age:62,
eyeColor:"blue"
};
/<code>

親自試一試

使用 JavaScript 關鍵詞 new

下面的例子也創建了帶有四個屬性的新的 JavaScript 對象:

實例

<code>var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue";

/<code>

親自試一試

上面的兩個例子結果是一樣的。無需使用 new Object()。

出於簡易性、可讀性和執行速度的考慮,請使用第一種創建方法(對象文字方法)。

JavaScript 對象是易變的

對象是易變的:它們通過引用來尋址,而非值。

如果 person 是一個對象,下面的語句不會創建 person 的副本:

<code>var x = person;  // 這不會創建 person 的副本。/<code>

對象 x 並非 person 的副本。它就是 person。x 和 person 是同一個對象。

對 x 的任何改變都將改變 person,因為 x 和 person 是相同的對象。

實例

<code>var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}

var x = person;
x.age = 10; // 這將同時改變 both x.age 和 person.age
/<code>

親自試一試

註釋:JavaScript 變量不是易變的。只有 JavaScript 對象如此。

  • JS 表單 API
  • JS 對象屬性


分享到:


相關文章: