JavaScript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。
虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。
一、对象的基础知识
1、对象的基本结构
JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。
2、引用对象的途径
一个对象要真正地被使用,可采用以下几种方式获得:
o 引用JavaScript内部对象;
o 由浏览器环境中提供;
o 创建新对象。
这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。
3、有关对象操作语句
JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此JavaScript设计者之所以把它你“基于对象”而不是面向对象的语言,在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。
(1) For...in语句
格式如下:
For(对象属性名 in 已知对象名)
说明:
o 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。
o 该语句的优点就是无需知道对象中属性的个数即可进行操作。
例:下列函数是显示数组中的内容:
Function showData(object)
for (var X=0; X<30;X++)
document.write(object[i]);
该函数是通过数组下标顺序值,来访问每个对象的属性,使用这种方式首先必须知道数组的下标值,否则若超出范围,则就会发生错误。而使For...in语句,则根本不需要知道对象属性的个数,见下:
Function showData(object)
for(var prop in object)
document.write(object[prop]);
使用该函数时,在循环体中,For自动将的属性取出来,直到最后为此。