什麼是物件導向

經過如此多年,我才真正認識它。

簡述

物件導向的特點就是都會有個「對象」,最明顯的地方是「呼叫 function 的方式」。

下面是一個用「閉包」實作出來的範例。雖然不是正規作法,但包含了物件導向的理念:

1
2
3
4
5
6
7
8
9
10
11
12
13
function createWallet(initMoney) {
let money = initMoney
return {
deduct: (value) => {
value > 100 ? (money -= 100) : (money -= value)
},
show: () => console.log(money)
}
}
const myWallet = createWallet(1000)
// 對 myWallet 這個對象
myWallet.deduct(1000)
myWallet.show()

這種對 xxx 做某件事的行為就稱為「物件導向」,以上面的例子來說,不管是 deduct 還是 show,都是在對 myWallet 這個對象來執行。所以物件導向基本上都會有一個明確的對象

如果不是物件導向的話,就會像下面這樣,透過直接呼叫 function 的方式來完成:

1
2
deduct(1000)
show()

為什麼要物件導向?

在物件導向的世界哩,會把每樣東西都看成是一個一個的「對象(模組)」,這樣的好處有幾點:

  1. 比較好管理(模組化)
  2. 可以避免有人直接操控變數之類的問題。
ES6 實作物件導向 mentor-program-day94
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×