「物件」裡面,除了可以放入「number, string, boolean, array」之外,還可以放入「function」來做一些運算
「放入 function」到物件中
JS:
🎃 先新增goDinner 這個「屬性」
🎃 這裡的「function」可以「不命名」
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | var farm = {farmer: '卡斯伯',
 chick: 15,
 duck: 3,
 dog: ['張姆士', '龐的'],
 goDinner: function(){
 console.log(farm.farmer + '該回家吃晚飯了!')
 }
 };
 
 | 
 
呼叫 function
❌ 錯誤寫法
如果只有寫「farm.goDinner;」,在 Console 不會顯示任何的值
JS:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | var farm = {farmer: '卡斯伯',
 chick: 15,
 duck: 3,
 dog: ['張姆士', '龐的'],
 goDinner: function(){
 console.log(farm.farmer + '該回家吃晚飯了!')
 }
 };
 
 
 farm.goDinner;
 
 | 

❌ 錯誤寫法
如果只有寫「console.log(farm.goDinner);」,function 不會被執行,在 Console 只會把整個「function 的內容」印出來
JS:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | var farm = {farmer: '卡斯伯',
 chick: 15,
 duck: 3,
 dog: ['張姆士', '龐的'],
 goDinner: function(){
 console.log(farm.farmer + '該回家吃晚飯了!')
 }
 };
 
 
 console.log(farm.goDinner);
 
 | 

 
✅ 正確寫法
🎃 要執行 function,要寫farm.goDinner();
‼️ 最後方要加上一個「小括號」
JS:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 
 | var farm = {farmer: '卡斯伯',
 chick: 15,
 duck: 3,
 dog: ['張姆士', '龐的'],
 goDinner: function(){
 console.log(farm.farmer + '該回家吃晚飯了!')
 }
 };
 
 
 farm.goDinner();
 
 | 
function 就會被執行了

 
function 運算–> 在物件中
現在,我想要計算出物件中「chick + duck」的數量
作法如下:
🎃 在物件中,新增一個 function 來做運算
JS:
- 新增的 function,屬性是「poultryTotal」
- farm.poultryTotal();最後會執行這個 function
 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | var farm = {farmer: '卡斯伯',
 chick: 15,
 duck: 3,
 dog: ['張姆士', '龐的'],
 goDinner: function(){
 console.log(farm.farmer + '該回家吃晚飯了!')
 },
 poultryTotal: function(){
 var num = farm.chick + farm.duck;
 console.log('我的農場總共有' + num + '隻家禽')
 }
 };
 
 
 farm.poultryTotal();
 
 | 

物件的使用時機
在「接別人的 API」或是「接後端資料庫」時,
就會使用 JSON 的格式來丟資料給對方