## 《JavaScript 高级程序设计》中的面向对象的程序设计
面向对象(object-oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。前面提过,ECMAScript 中没有类的概念(在es6中是有类的概念),因此它的对象也与基于类的语言的对象有所不同。
ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数”。严格来说,这就相当于说对象是一组没有特定顺序的值。对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为这样,我们可以将对象想象成散列表:无非就是一组名值对(键值对),其中值可以是数据或函数。
每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型,也可以是开发人员定义的类型。