Ajax开发:Javascript的对象

来源:互联网 发布:买资料注册淘宝 编辑:程序博客网 时间:2024/04/27 22:12

  Javascript语言是基于对象的(Object-Based)、而不是面向对象的(object-oriented)语言。之所以说它是一种基于对象的语言,主要是因为它没有提供像抽象、继承、重载等有关面向对象语言的许多功能,而是把其他语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。虽然Javascript语言是一种基于对象的语言,但它还具有一些面向对象语言的基本特征。它可以根据需要创建自己的对象,从而进一步扩大Javascript的应用范围,增强编写功能强大的Web文档。

  Javascript中的对象是由属性(properties)和方法(methods)两个基本的元素构成的。前者是对象在实施其所需行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相关联。当然,一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。Javascript引用对象可通过以下三种方式获取:引用Javascript内部对象、由浏览器环境提供、创建新的对象。

  为方便对对象的操作,Javascript提供了几个用于操作对象的语句和关键字及运算符:

  1.For…in语句

  基本格式:

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

  此语句的功能是用于对已知对象的所有属性进行操作的控制循环。它通过将一个已知对象的所有属性反复置给一个变量而不是使用计数器来实现循环。这样做的好处是无需知道对象中属性的个数即可进行操作。如果不采用这种方式,则必须通过一个变量显式地指明要访问的是对象的哪个属性。下面的代码段显式了使用普通与For…in循环两种方式的对象属性遍历过程。

  Function showPro(object) {

  for (var i=0;i<30;i++) document.write(object[i]);

  }

  Function showPro2(object) {

  for (var pro in object) document.write(object[pro]);

  }

  函数showPro通过数组下标顺序值来访问每个对象的属性,使用这种方式首先必须知道数组的下标值,否则若超出范围,就会发生数组溢出的错误。而函数showPro2使For...in语句根本不需要知道对象属性的个数,在循环体中,For自动地将属性取出来,直到最后为止。

  2.with语句

  基本格式:

  with (object) {

  ……

  }

  使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。所有在with语句后花括号中的语句,都是在后面object对象作用域中的。下面的代码段显示两种访问HTML表单的元素的方法,一种是普通的方法,另外一种是使用with语句的方法:

  方法一:frames[1].document.forms[0].address.value

  方法二:

  with (frames[1].document.forms[0]) {

  address.value = "";

  name.value = "";

  }

  这种方式用在需要频繁或者批量访问一个对象的属性或者方法的地方。通过with语句暂时修改作用域链,执行完毕后再把作用域链恢复到初始状态。

  3.this关键字

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

  4.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作为一个新的日期对象了。

  Javascript可以通过四种方式访问对象的属性:使用点(.)运算符、使用对象下标、使用For….in循环、使用数组字符串方式。比如:

  university.Name=“云南省”

  university[0]=“云南”

  university["Name"]=“云南”

  Javascript提供了创建一个新对象的方法,使它不必像超文本标识语言那样求助于其他的多媒体工具,就能完成许多复杂的工作。在Javascript中创建一个新的对象是十分简单的。首先它必须定义一个对象,而后再为该对象创建一个实例。这个实例就是一个新对象,它具有对象定义中的基本特征。Javascript对象定义的基本格式如下:

  Function object(pro1,pro2,method,……) {

  this.pro1 = pro1;

  this.pro2 = pro2;

  this.method = method;

  }

  在一个对象的定义中,可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。下面这段代码创建一个名为University的对象,其具有name、city、createDate、url四个属性:

  Function Unversity(name,city,createDate,url){

  this.name = name;

  this.city = city;

  this.createDate = createDate; 

  this.url = url;

  }

  一旦对象定义完成,就可以使用下述方法为该对象创建一个实例:

  newObject=New Object();

  其中Newobjet是新的对象,Object已经定义好的对象。比如:

  U1=New University("厦大","厦门","1921","http://www.xmu.edu.cn")

  U2=New University("宾小","昆明","January 07,1997 12:00:00","htlp:// www.binxiao.cn")

  在对象中除了使用属性外,有时还需要使用方法。在对象的定义中,我们看到This.method=FunctionName语句,那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName,通过它实现自己的意图。

  在Javascript所使用的对象中,有很大一部分是浏览器提供的内部对象。通过这些内部对象,可以与HTML文档进行交互。在这些对象中,常用的有:

  — 窗体对象window

  window对象指向当前活动窗口,其中包括许多有用的属性、方法和事件驱动程序,编程人员可以利用这些对象控制浏览器窗口显示的各个方面,如对话框、框架等。窗口对象主要有装入Web文档事件onload和卸载时onunload事件,用于文档载入和卸载时开始和停止更新文档。

  窗口对象的方法主要用来提供信息或输入数据以及创建一个新的窗口。open()方法创建一个新的窗口;alert()方法则创建一个具有“确定”按钮的对话框;confirm()方法提供一个具有“确定”和“取消”按钮的对话框;prompt()方法允许用户在对话框中输入信息,并可使用默认值,其基本格式为prompt(“提示信息”,“默认值”)。

  窗口对象中的属性主要用来对浏览器中存在的各种窗口和框架的引用,其frames属性用来确定文档中帧的数量;parent属性提供对当前窗口或者帧的父窗口的引用;status属性包含文档窗口或者帧中的信息,显示在浏览器状态栏;top属性指向当前窗口的顶级窗口,即用以实现所有下级窗口的窗口;self属性代表对当前窗口的引用。

  — Screen对象

  window对象的screen属性引用Screen对象。这个对象提供有关用户显示器的大小和可用颜色数量的信息。其属性width和height指定以像素为单位的显示器大小;属性availWidth和availHeight指定实际可用的显示器大小,排除了像Windows任务栏这样的特性所占有的空间。

  — Location对象

  window对象的location属性引用Location对象。这个对象代表窗口中当前显示文档的URL。Location对象的href属性是一个字符串,包含当前文档完整的URL文本;而其他属性,如protocol、host、pathname、search等则分别声明了URL的各个部分。Location对象的search包含文号之后的那部分URL,通常是某种类型的查询字符串,使用时要多加注意。

  Location对象的方法replace会装载并显示指定的URL。当replace()方法被调用时,指定的URL将替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新条目,所以浏览器的后退按钮是无效的。方法reload()则从Web服务器再次载入当前显示的页面。

  — History对象

  window对象的history属性引用该窗口的History对象。History对象最初是用来把窗口的浏览历史构造成来访问过的URL数组,不过基于安全

原创粉丝点击