iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

追憶JS年華系列 第 20

Day-20 OOP與抽象類別

JavaScript是一套透過原型鏈(prototype)實作的物件導向程式設計(Object-oriented programming, OOP)語言。近兩篇文章將介紹構成其OOP的基本概念。

Object-oriented物件導向

物件導向,類似生物分類法,把共同的特性寫在前面,讓後面的物件能直接使用。
=> 只要在前面寫一次,否則後面的東西有100個的話就要寫100次,太累了。

  • 物件 = 屬性 + 行為(sunction)
  • 繼承 = 分類:可以讓子類別的東西使用上層類別(Super Class、Parent Class)的東西
  • 物件=屬性+行為

屬性

const hero = {
	name: “悟空”
	age: 18
	power: 500
	status: 飢餓
}

行為

eat: function {
	    console.log (“yummy”, food);
        }
    }
hero.eat (“壽司”)

Key與Value

用 Object.keys (變數名稱)、Object.values (變數名稱)可印出所有 key 跟 value。

const hero = {
	name: “kk”
	//key //value
}

console.log (Object.keys(hero))  //印出所有key
console.log (Object.values(hero))  //印出所有的value

延伸閱讀:物件導向程式設計(OOP)

抽象類別 Abstract Class

抽象類別,也類似生物分類法,把共同的特性寫在前面,讓後面的物件能直接使用。
=> 只要在前面寫一次,否則後面的東西有100個的話就要寫100次,太累了。寫成程式碼的話,就像:

class 靈長類 {
  squash() {
    console.log("!!!!");
  }
}
//  黑猩猩是一種靈長類
class 黑猩猩 extends 靈長類 {
}

class 人 extends 靈長類 {
}

me = new 人()
me.squash()

you = new 黑猩猩()
you.squash()

上一篇
Day-19 This
下一篇
Day-21 物件與原型鏈
系列文
追憶JS年華30

尚未有邦友留言

立即登入留言