JS物件導向OOP 基本介紹

jack hou
Aug 2, 2022

--

物件導向的設計理念就是認定每一個物件是一個獨立的個體,而每個獨立個體有其特定的功能,對我們而言無需去理解這些特定功能如呵達成這個目標過程,僅需將需求告訴這個獨立個體,如果此個體能獨立完成,將此任務交給發號施令者.物件導向強調程式的可讀性(Readability)重複使用性(Reusability)與延伸性(Extension),並具備封裝(Encapsulation)繼承(Inheritance)多型(Polymorphism)這三種特性

封裝Encapsulation

封裝是利用[類別class]來實作抽象畫資料型態ADT,類別是用來具體描述物件的狀態與行為的資料型態

繼承Inheritance

繼承允許程式碼重複使用(Code Reusability),以及表達了樹狀結構中父與子的遺傳現象.繼承允許我們去定義一個新的類別來繼承既存的類別,進而使用或修改繼承而來的方法(method)並可在子類別中加入新的資料成員與函數成員,在繼承關係中, 可以把它視為單存的複製(copy)的動作

多形Polymorphism

多形就是讓一樣東西同時具有多種不同的形態.在物件導向中,剁形的定義是利用類別的繼承架構,先建立一個基礎類別,使用這可以透過物件的轉型宣告,將此物件向下轉為衍生類別物件,進而控制所有衍生的[同名異式]成員的方法簡單來說,多形最直接的定義就是讓具備有繼承關係的不同類別物件,可以呼叫相同名稱的成員函數,並產生不同的反應結果

物件object

物件object基本語法=屬性名+屬性值

屬性訪問:打點.可以訪問指定鍵的值

如果屬性名不符合js標示符命名規範,則必須用方括號的寫法來訪問

如果屬性名以變量形式儲存,也必須使用方括號形式

如果某個屬性值是函數,則他也被稱為物件的"方法"

方法調用

方法其實也是函數,止步過方法是物件object的"函數屬性",他需要用物件打點.調用

物件的遍歷方法

for…in..循環可以遍歷物件的每一個值

物件的深淺克隆

淺克隆 : 只克隆物件的表層

深克隆: 客隆物件的全貌 通常會用遞迴去做

--

--