
6
第一章
你無法從物件本身看到
codyA
與
codyB
的差異,但是可以從產生物件的建構函式中看到
這一點。
codyA
物件是透過
Object()
建構函式的實例產生的。
Person()
建構式建構了
codyB
,但是它也有更強大的使用方式,可以作為物件的「工廠」來建立更多的
Person()
物件。當你製作產生自訂物件的建構式的同時,也設定了
Person()
實例的原型繼承架
構。
這兩種方案都會建立相同的複合物件,它們是最常見的物件建構模式。
JavaScript 其實只是一種預先包裝了幾種原生物件建構式的語言,這些原生物件建構式的
用途是產生複合物件,藉以表達特定類型的值(例如:數字、字串、物件、陣列等等),
JavaScript 也會使用
Function()
物件來產生原始素材,可用來建構使用者自訂的物件建構
式 [例如
Person()
]。無論物件的建構模式是什麼,最後的結果就是產生一個複合的物件。
本書接下來的重點是協助你瞭解物件的建立、性質、使用方式,以及它們的原始對等物。
建構 JavaScript 建構式與回傳物件實例
建構函式的任務是建立具有同樣性質與行為的物件。基本上,建構函式具備了預設的屬性
與屬性方法,是一種用來生產物件的餅乾模具。
如果你說:「建構函式只不過是個函式」,我會回答:「你是對的,但是你必須以
new
關
鍵字來使用這個函式。」[例如
new String('foo')
],一旦如此,這個函式會扮演特殊的
角色,JavaScript 會對這個函 ...