首先,对象的定义大致如下:
对象(object)是JavaScript的核心概念,也是最重要的数据类型。JavaScript的所有数据都可以被视为对象。
简单说,所谓对象,就是一种无序的数据集合,由若干个逗键值对地(key-value)构成。
var o = {
p: "Hello World"
};
上面代码中,大括号就定义了一个对象,它被赋值给变量o。这个对象内部包含一个键值对(又称为逗成员地),p是逗键名地(成员的名称),字符串逗Hello World地是逗键值地(成员的值)。键名与键值之间用冒号分隔。如果对象内部包含多个键值对,每个键值对之间用逗号分隔。
我们从两个层次来理解。
(1)逗对象地是单个实物的抽象。
一本书、一辆汽车、一个人都可以是逗对象地,一个数据库、一张网页、一个与远程服务器的连接也可以是逗对象地。当实物被抽象成逗对象地,实物之间的关系就变成了逗对象地之间的关系,从而就可以模拟现实情况,针对逗对象地进行编程。
(2)逗对象地是一个容器,封装了逗属性地(property)和逗方法地(method)。
所谓逗属性地,就是对象的状态;所谓逗方法地,就是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,逗属性地记录具体是那一种动物,逗方法地表示动物的某种行为(奔跑、捕猎、休息等等)。
其次,典型的面向对象编程语言(比如C++和Java),存在逗类地(class)这样一个概念。所谓逗类地就是对象的模板,对象就是逗类地的实例。JavaScript语言没有逗类地,而改用构造函数(constructor)作为对象的模板。
前面说过,逗对象地是单个实物的抽象。所以,通常需要一个模板,表示某一类实物的共同特征,然后逗对象地根据这个模板生成。