## 《JavaScript 高級程序設計》中的面向對象的程序設計
面向對象(object-oriented,OO)的語言有一個標志,那就是它們都有類的概念,而通過類可以創建任意多個具有相同屬性和方法的對象。前面提過,ECMAScript 中沒有類的概念(在es6中是有類的概念),因此它的對象也與基于類的語言的對象有所不同。
ECMA-262 把對象定義為:“無序屬性的集合,其屬性可以包含基本值、對象或者函數”。嚴格來說,這就相當于說對象是一組沒有特定順序的值。對象的每個屬性或方法都有一個名字,而每個名字都映射到一個值。正因為這樣,我們可以將對象想象成散列表:無非就是一組名值對(鍵值對),其中值可以是數據或函數。
每個對象都是基于一個引用類型創建的,這個引用類型可以是原生類型,也可以是開發人員定義的類型。