JavaScript教程 第四讲 基于对象的JavaScript语言

发表于:2007-06-21来源:作者:点击数: 标签:
下一页 1 2 3 #106avascript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大#106avascript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的

下一页 1 2 3 

   

     javascript语言是基于对象的(Object-Based),而不是面向对象的(object-oriented)。之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。

而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。

  虽然javascript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大javascript的应用范围,增强编写功能强大的Web文档。

一、对象的基础知识

1、对象的基本结构

  javascript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。

2、引用对象的途径

  一个对象要真正地被使用,可采用以下几种方式获得:

    • 引用javascript内部对象;

    • 由浏览器环境中提供;

    • 创建新对象。

  这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。从上面中我们可以看出javascript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。

3、有关对象操作语句

  javascript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此javascript设计者之所以把它你“基于对象”而不是面向对象的语言,在javascript中提供了几个用于操作对象的语句和关键字及运算符。

1)、For...in语句

格式如下:

For(对象属性名 in 已知对象名)

说明:

    • 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。

    • 该语句的优点就是无需知道对象中属性的个数即可进行操作。

例:下列函数是显示数组中的内容:

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自动将的属性取出来,直到最后为此。

  1. 、with语句

    使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。

    with object{

    ...}

    所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。

  2. 、this关键字

    this是对当前的引用,在javascript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此javascript提供了一个用于将对象指定当前对象的语句this。

  3. 、New运算符

虽然在javascript中对象的功能已经是非常强大的了。但更强大的是设计人员可以按照需求来创建自己的对象,以满足某一特定的要求。使用New运算符可以创建一个新的对象。其创建对象使用如下格式:

Newobject=NEW Object(Parameters table);

其中Newobject创建的新对象:object是已经存在的对象; parameters table参数表;new是javascript中的命令语句。

如创建一个日期新对象

newData=New Data()

birthday=New Data (December 12.1998)

之后就可使NewData、birthday作为一个新的日期对象了。

原文转自:http://www.ltesting.net