物件就像陣列一樣,可以保存不同類型的數據,像是陣列、另一個物件,甚至是函數(functions)。
函數實際上只是另一種值,所以我們可以創造一個key-value pair,其中的值為函數,這也意味著我們可以為物件添加功能。
因為表達式(expression)會產生值,所以這裡使用表達式來撰寫函數,宣告式(declaration)在這邊是不成立的,而任何附加於物件的函數都稱為方法(method),實際上它也是一個屬性。
要使用物件中的方法,就像取用其他屬性一樣,在物件名稱後加上點符號及屬性名稱(在這邊使用方括號及屬性名稱的話,效果也是一樣的),而如同使用其他函數一樣,我們還需要在最後加上括號。
const list = {
fruits: "apple",
meat: "beef",
vege: "broccoli",
calcItem: function () {
const size = Object.keys(list).length;
return size - 1;
}
};
console.log(list.calcItem());
// 3
console.log(list["calcItem"]());
// 3