{%hackmd BJrTq20hE %}
第 14 屆 iThome 鐵人賽 (2022)
物件基本概念
JavaScript 本身就是一個物件導向語言,除了原生型別 number、string、boolean、null、undefined 之外,都是物件,物件具有屬性(properties)
與方法 (methods)
可以操作,使用『物件』來做程式設計模式稱為『物件導向程式設計』。
建立物件之前必須先定義 『類別 (class)』
,也就是先定義好這個物件長什麼樣子以及要做哪些事情。類別定義的樣式,稱為 『屬性 (Properties)』
,要做的事或提供的方法,稱為『類別 (Methods)』。『物件』則是由類別利用 new 關繫字建立的物件實體 (intance),由類別建立物件實體的過程稱為『實體化 (Instantiation)』。
物件導向的三大特性,分別是『封裝 (Encapsulation)』、『繼承 (Inheritance)』與『多型 (Polymorphism)』,以下簡單說明這三大特性。
在Object(物件)的建立方法,除了建構函數(constructor)外,另外可以使用Object.create()方法,透過一個已經定義完成的物件建立新的物件,Object.create()方法會將定義完成的物件作為新物件的原型(prototype)以建立新物件。
JS 語言定義物件的屬性,有兩種方法:
//方法1
obj.foo = true;
//方法2
obj['a'+'bc']=123;
上面程式的方法一是直接用是別符號作為屬性名稱,
方法二是用運算是作為屬性名稱,這時要將運算式放在中括號內。
嚴格意義上來講,Node.js的類別不能算類別,他只是一個函數的集合體,加一些成員變數,不過我們接下來都稱其為「類別」,產生實體的叫「物件」。因為類別具有很多函數的特性,或說類別的本質是一個函數。接下來我會介紹類別的靜態方法、原型方法、實例方法、產生實體、類別修飾器以及類別方法修飾器、類別的繼承。