物件與函式
屬性(property):靜態的資料,用於描述物件的狀態;
物件與函式

- 屬性(property):靜態的資料,用於描述物件的狀態;
- 方法(method):物件的功能,或說物件的行為;
物件中的this代表是誰呼叫這個函式

直接把物件傳給函式
function showDetail(name, gender, age) {
console.log(`${name[0]} ${name[1]}`)
console.log(gender)
console.log(age)
}
showDetail(user.name, user.gender, user.age)
簡化:
function showDetail(user) {
console.log(`${user.name[0]} ${user.name[1]}`)
console.log(user.gender)
console.log(user.age)
}
showDetail(user)
搭配for-in迴圈(利用typeOf !=='function' 過濾掉function):
function showDetail (user) {
for (let prop in user) {
if (typeof user[prop] !== 'function') {
console.log(user[prop])
}
}
}
showDetail(user)
把物件傳給回傳值
player1 = {
name: 'Magician',
hp: 30,
mp: 100
}
player2 = {
name: 'Warrior',
hp: 100,
mp: 30
}
console.log(player1) // {name: "Magician", hp: 30, mp: 100}
console.log(player2) // {name: "Warrior", hp: 100, mp: 30}
創建一個遊戲角色:
把物件當成函式的回傳值
function createPlayer (name, hp, mp) {
return {
name: name,
hp: hp,
mp: mp
}
}
const player1 = createPlayer('Magician', 30, 100)
const player2 = createPlayer('Warrior', 100, 30)
console.log(player1) // {name: "Magician", hp: 30, mp: 100}
console.log(player2) // {name: "Warrior", hp: 100, mp: 30}
在javascript裡面常見的場景,〔函式可以當成值〕
- 存進變數
- 當成物件屬性
- 當成另一個函式的回傳值
- 當成另一個函式的參數
把函式放進變數:
簡單的函式:
function greet(name) {
return `Hi, ${name}`
}
把函式當成值,放進變數
const greet = function (name) {
return `Hi, ${name}`
}
但是結果是一樣的,greet('peter') // hi, peter

把函式放成物件屬性:
const user = {
name: ['Peter', 'Lee'],
gender: 'Male',
age: 41,
greet: function () {
console.log(`Hello! I am ${this.name[0]}.`)
},
run: function () { console.log('run!')},
}
user.greet() // Hello! I am Peter.

當成另一個函式的回傳值:

當成另一個函式的參數:
function game () {
console.log("Let's play game!")
return 'I am happy!'
}
//增加這個函式
function study(){
console.log("Let's go to school.")
return 'I am tired.'
}
//修改這個函式
function breakfast (callback) {
console.log(`I finished my breakfast.`)
return callback()
}
//呼叫時才決定吃完早餐要去讀書
const today = breakfast(study)
console.log(today)

匿名函式:
function game () {
console.log("Let's play game!")
return 'I am happy!'
}
// 註解起來
// function study(){
// console.log("Let's go to school.")
// return 'I am tired.'
// }
function breakfast (callback) {
console.log(`I finished my breakfast.`)
return callback()
}
//直接把匿名函式傳入,效果相同
const today = breakfast(function (){
console.log("Let's go to school.")
return 'I am tired.'
})
console.log(today)

메타데이터
- post_id
- 55c5d9c78c81
- slug
- 物件與函式-55c5d9c78c81
- url
- https://medium.com/@paddy7328307/%E7%89%A9%E4%BB%B6%E8%88%87%E5%87%BD%E5%BC%8F-55c5d9c78c81
- canonical_url
- https://medium.com/@paddy7328307/%E7%89%A9%E4%BB%B6%E8%88%87%E5%87%BD%E5%BC%8F-55c5d9c78c81
- author_url
- https://medium.com/@paddy7328307
- status
- ok
- fetched_at
- 2026-07-27 07:49:50