前面提到除了string、number、boolean、null和undefined等5種基本型別之外,其他的值都是物件型別。
那什麼是物件呢?
物件是0到多種屬性的集合,而所謂的屬性是一組鍵(key)與值(value)的配對關聯。值的內容可以是字串、數字等基本型別,也可以是另一個物件,或是一個函數。
現在最常見的方法就是使用**「物件實字」(Object literal)**的方法,用一個大括號{}建立一個物件,同時在大括號中直接建立屬性及方法。
//使用「物件實字」建立一個郭靖(guoJing)的物件
var guoJing = {
name: '郭靖',
gender: 'male',
skill: '降龍十八掌',
useSkill: function () {
alert('降龍十八掌之亢龍有悔')
}
}
而在早期要建立一個物件,會使用new 關鍵字來建立一個物件實體,再用「物件.屬性」的方式替這個物件新增屬性及方法。
//使用「new」關鍵字建立一個郭靖(guoJing)的物件
var guoJing = new Object();
guoJing.name = '郭靖';
guoJing.gender= 'male';
guoJing.skill= '降龍十八掌';
guoJing.useSkill= function () {
alert('降龍十八掌之亢龍有悔')
}
至於如何新增與刪除屬性,可以用下面這種方式:
//建立一個郭靖(guoJing)的物件,裡面不放任何屬性
var guoJing = {}
//建立name的屬性
guoJing.name = '郭靖';
//建立skill的屬性
guoJing.skill= '降龍十八掌';
//刪除 guoJing.skill 這個屬性
delete guoJing.skill;
console.log(guoJing.skill) //undefined
前面提到用物件實字的方式建立物件,這也是JSON格式的核心語法,JavaScript透過JSON來撈取外部的資料到程式內部使用。
物件就像是樂高,可以自由拼裝想要形狀與組件,自己養成一個天下武功第一的大俠。