JavaScript 語法 流程控制 Function (函數) Object (物件) 數值 布林值 字串 陣列 時間和日期 Math 物件
正規表示式 瀏覽器物件模型 BOM JS DOM HTML DOM CSS樣式 & Event

Object (物件)

Object (物件)

JavaScript 物件 (object) 是一個複合資料型態 (composite data type),可以儲存不定數量的鍵值對 (key-value paris), 而一組鍵值對我們稱做物件的一個屬性 (property)。一個屬性的值 (value) 可以是任何資料型態 (也可以是函數);而屬性的名稱 (key / name) 是一個字串型態。

物件宣告 (Creating Objects)

有兩種方式可以建立一個物件:
  Object Constructor (物件建構式)
   用 new 關鍵字加上 Object( ) 來宣告一個物件:
  var myObj = new Object();
  Object Literal (物件實字)
  object literal 是最常用也最方便的語法,用 { } 就可以宣告一個物件:
  var myObj = {};

物件的屬性 (Object Properties)

我們可以用 . 運算子來存取物件的屬性。
語法:
objectName.propertyName
 例如:
var myObj = {};
myObj.color = 'blue';         // 建立一個叫 color 的屬性,值是 blue
var myColor = myObj.color;    // 存取物件屬性

或用 [] 運算子來存取物件的 屬性。
語法:
objectName['propertyName']
 例如:
var myObj = {};
myObj['color'] = 'blue';         // 建立一個叫 color 的屬性,值是 blue
var myColor = myObj['color'];    // 存取物件屬性
用 [ ] 特別的地方在於,中括號裡面可以是一個變數, 例如:
var myObj = {};
var propName = 'color';
 myObj[propName] = 'blue';        // 建立一個叫 color 的屬性,值是 blue
 console.log(myObj[propName]);    // 會輸出 blue
但如果你用 . 運算子,則會新增一個叫 propName 的屬性,而不是叫 color ,如下 :
myObj.propName = 'blue';     // myObj物件 的 propName 屬性,值是 blue
用 [ ] 運算子除了可以使用變數之外,還有當你的屬性名稱包含空白或點字元的時候。例如 myObj['hello ...'] = 'world'。

用 object literal 我們也可以在宣告物件時,同時建立屬性!
語法:
var obj = {property1: value1, property2: value2, ..., propertyN: valueN}
 例如:
  var myObj={'color': 'blue', 'height': 101};        //建立一個物件有兩個屬性color和height
 object literal 中的屬性名稱的 引號 可以省略:
  var myObj = {color: 'blue', height: 101};          //建立一個物件有兩個屬性color和height

物件的方法 (Object Methods)

物件的屬性值如果是一個函數,我們稱它是物件的方法 (method)。
物件的方法可以定義一個物件可以做的動作 (action),你可以像執行函數一樣執行一個物件的方法:
objectName.methodName();
例如:
var me = {
    firstName: 'Mike',
    lastName: 'Lee',
    age: 30,
    fullName: function() {
        return this.firstName + ' ' + this.lastName;
    }
}
var totalName = me.fullName();                // totalName = 'Mike Lee'
this 是物件方法中可以使用的關鍵字,this 是一個物件參考,當物件在執行時,可以使用 this 來代表 "自己"。

JavaScript 內建物件 (JavaScript Native Objects)

JavaScript 有一些內建物件,也可以稱作 資料型態 ,包含:
Number 物件: 數字型態的物件,如整數 (5, 10) 或浮點數 (3.14)
Boolean 物件: 表示邏輯真假值的物件,真就是 true,假就是 false
String 字串物件: 任何字元 (Unicode)
Array 陣列物件: 可用來容納任何其他物件
Math 物件: 提供許多常用的數學常數及數學計算函數
Date 物件: 專門處理時間和日期的物件
RegExp 物件: 即正規表示式 (regular expression) 物件
每一種物件都有各自的屬性 (attribute) 和方法 (method) 可以使用。