JavaScript 是物件導向語言,代表物件是這種語言最基本的類型,JavaScript 與其他物件導向語言的區別是:不用定義類別,然後使用這些類別建立物件,代替做法是,JavaScript 的物件從 prototype(模型物件)繼承而來,所以物件的使用更加容易。
物件是由屬性(也稱特性(attribute))和方法(也就是函數)組成。
屬性名稱 : 值 ,(逗號分隔屬性)(最後一個屬性後面不要加多餘的逗號,有些瀏覽器會造成錯誤)
屬性名稱命名方式:
建立物件有兩種方法:
var 變數名稱 =:賦值運算子 new:建立運算子 Object()
與建立新陣列類似,使用
var 變數名稱 =:賦值運算子 { }
建立賦值的簡單類型變數一樣,使用文字(Literal)語法,並以大括號作為物件屬性標記,此作法較為常用,注意在右大括號之後加上分號結束該語句。
物件是由屬性(也稱特性(attribute))和方法(也就是函數)組成。
參考 MSDN Object 物件:https://msdn.microsoft.com/library/kb6te8d3(v=vs.94).aspx
1建立物件
建立物件前,先熟知屬性建立的方法:建立屬性
屬性名稱 : 值 ,(逗號分隔屬性)(最後一個屬性後面不要加多餘的逗號,有些瀏覽器會造成錯誤)
屬性名稱命名方式:
- 通常只使用字母(絕對必要情況下可以混用數字)
- 不能有空格和標點符號
- 不能是 JavaScript 關鍵字
- 不需加引號
屬性值不限於簡單類型,甚至可以是物件或陣列,若為字串需加引號!
建立物件有兩種方法:
1. 物件語法(new 運算子)
var 變數名稱 =:賦值運算子 new:建立運算子 Object()
與建立新陣列類似,使用
new 運算子,為物件增加屬性,要在括號裡面加入屬性。
var obj = new Object(); //建立空物件
var obj = new Object(num: 6, title: 'Complex Variable Types'); //建立多個屬性
2. 文字語法
var 變數名稱 =:賦值運算子 { }
建立賦值的簡單類型變數一樣,使用文字(Literal)語法,並以大括號作為物件屬性標記,此作法較為常用,注意在右大括號之後加上分號結束該語句。
var obj = {}; //建立空物件
var obj = {num: 6, title: 'Complex Variable Types'}; //建立多個屬性
var obj = { //分行寫法使定義更清楚
num: 6,
title: 'Complex Variable Types'
};
var obj = {
num: 4,
name: 'May',
car:{
brand: 'Honda',
model: 'Fit',
year: 2008
},
favoriteColor: ['Black', 'Blue', 'Red'] //屬性不限簡單類型,甚至可以是物件或陣列
};
陣列與物件的比較
與其他語言相比,JavaScript 的陣列相當獨特,它只是特定類型的物件,就像 JavaScript 裡的布林值、數值、字串、函數都是物件。
而應該使用哪種物件類型?何時使用?是個邏輯問題:
-
如果只呈現單一值──布林值、數值或字串,建議使用簡單類型及文字語法:
var option = true; 而非 var option = new Boolean(true); - 如果需要表是日期和時間,就利用 Date 物件,而非普通物件。
- 物件是無序的屬性集合,無法有意義排序物件值,若要排序就改用陣列
- 除了必須為值配上有意義標籤情況下,應改用物件取代
- 不同於陣列,物件沒有 length 屬性,無法得知屬性的數量
- 物件呈現與一種事物相關的不同資訊,例如:員工、書中的章節
- 陣列表現許多事物的相同資訊,例如:級別、姓名清單
參考 MSDN 建立物件:https://msdn.microsoft.com/zh-tw/library/202863ha(v=vs.94).aspx