JS对象事件方法
JavaScript是基于对象(object-based)的语言。而基于对象的基本特征,就是采用事件驱动(event-driven)。它是在用形界面的环境下,使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件(Event),而由鼠标或热键引发的一连串程序的动作,称之为事件驱动(Event Driver)。而对事件进行处理程序或函数,我们称之为事件处理程序(Event Handler)。
对象object---事件event---属性和方法propertyand method;
JS是通过使用自身内建对象和浏览器所提供对象的属性和方法来实现网页动态效果的。
1 对象:
JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联;后者是指对象能够按照设计者的意图而被执行,从而与特定的函数相关联。
1.1 JS可以访问的对象包括:
1 内置对象,如string,math,array,date;分别对字符串、数学运算、数组、日期和时间进行处理;
2 浏览器提供的对象,如window和screen等;网页的各个部分都可以当做对象看待;document是指当前网页,包括的对象有:layer,links,forms,images,archors,applets,plugins,area等;
3 自定义对象;
1.2 JS是一种基于对象(不是面向对象)的脚本语言,各对象间不存在继承关系,而是一种从属关系,从属关系涉及的两个对象在属性和方法上一般不存在共同点。网页是由HTML标记符、表单、Java小应用程序以及种插件构成的,而网页又是从属于某个浏览器窗口的。窗口与网页之间、网页与各网页组成部分之间并没有任何相似之处,只是一种从属关系。在这种从属关系中,浏览器窗口(window)位于整个结构的最顶层,其子对象包括location、history、document、frame对象等;(用new关键字实例化对象可实现对象的效率利用)
2 事件
2.1 每个对象都有相应可以触发的事件,如鼠标、键盘、浏览器事件等;
2.2 当相应对象的相应事件触发时,系统会自动查询该事件是否指定了事件处理函数或代码,若有指定,则调用执行对应事件处理函数,从而完成对事件的响应,若未指定,则什么也不执行;
2.3 事件处理函数通过对象的事件句柄来指定,句柄可视为是对象的一个属性,事件句柄的名称由On事件名构成,如:
click事件,其对应的事件句柄是:Onclick;
2.4 事件处理函数的指定方法为:
事件句柄=事件处理函数()或语句,如:
<input type="button"value="确定" onclick="checkit()">
一个对象要真正地被使用,可采用以下几种方式:
1.引用JavaScript内部对象;
2.由浏览器环境中提供
3.创建新对象。
这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。
有关对象操作语句
1 For...in语句
2 with语句
3 this关键字
4 New运算符
1 For(对象属性名 in 已知对象名)
2 with object{ ...}
3 this是对当前的引用
4 使用New运算符可以创建一个新的对象。其创建对象使用如下格式: Newobject=NEW Object(Parameters table); 其中Newobject创建的新对象:object是已经存在的对象;parameters table参数表;new是JavaScript中的命令语句。如创建一个日期新对象 newData=New Data() birthday=New Data (December 12.1998) 之后就可使NewData、birthday作为一个新的日期对象了。
对象属性和方法的引用
1 对象属性的引用
使用点(.)运算符: university.Name=“广西”
通过对象的下标实现引用: university[0]=“广西”
通过字符串的形式实现 : university["Name"]=“广西”
2 对象的方法的引用
ObjectName.methods()
在JavaScript中对于对象属性与方法的引用,有两种情况:
其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例;
而另一种对象则在引用它的对象或方法是必须为它创建一个实例,即该对象是动态对象。对JavaScript内部对象的引用,以是紧紧围绕着它的属性与方法进行的。因而明确对象的静动性对于掌握和理解JavaScript内部对象是具有非常重要的意义。
在对象中除了使用属性外,有时还需要使用方法。在对象的定义中,我们看到This.meth=FunctionName语句,那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName,通过它实现自己的意图。
在JavaScript文档对象中,提供了用于显示关闭、消除、打开HTML页面的输出流。
创建新文档open()方法
write()、writeln()输出显示
关闭文档流close()
清除文档内容clear()
在引入对象的编程方法中,通过定义对象,将一定的属性和方法赋于一个对象,属性对应于对象中的变量,方法则定义了对象自己的函数。在程序设计中,将对象实例化,在不同的地方对其引用,从而简化程序设计。对象实例化,就是将对象的属性和方法具体化。
对象属性对应一组变量,方法则用来定义一组函数。在JS程序设计中,一般通过下面的格式来引用对象的属性和方法。
对象实例名.属性名
对象实例名.方法名(参数)
如,下面引用string对象的属性和方法:
var aStr=new String("This is anexample") //定义一个对象实例aStr
var I=aStr.lengh //引用aStr的length属性
var bStr=aStr.big() //引用aStr的big()方法
在JS中,一个对象的属性是和一个数组的某一个元素一一对应的,这个数组称为该对象的关系数组。这样,除了使用上面最基本的方法引用属性外,还可以通过两种使用关系数组的方法来引用对象属性。
如,我们定义一个MySchool对象,它包含:city、name、date三个属性,则可以通过下面的方法来引用属性:
通过关系数组的下标引用属性
MySchool[0]="成都"
MySchool[1]="电子科技大学"
MySchool[2]="1995"
通过关系数组元素名引用属性
MySchool["city"]="成都"
MySchool["name"]="电子科技大学"
MySchool["date"]="1995"
面向对象的最大优点是可以代码重用;
面向对象:从所处理的数据入手,以数据为中心而不是以服务(功能)为中心来描述系统,它把编程问题视为一个数据中心,数据相对于功能而言,具有更强的稳定性;
一般认为对象是包含现实世界物体特征的抽象实例,它反映了系统为之保存信息和与它交互的能力,它是一些属性及服务一个封装体;
对象=数据(描述为属性或变量)+作用于这些数据上的操作(描述为函数或方法);
类是具有相同操作功能(方法)和相同的数据格式(属性)的对象的集合;
类是对象集合的抽象,它规定了这些对象的公共属性和方法;对象为类的一个实例;
在声明一个类时,需要列出该类所拥有的所有变量和所有函数(这分别被称之为属性和方法;
访问类的属性和方法:
1 使用句点运算符;
2 使用关键字this;
宿主对象是宿主环境提供的,当浏览器作为JS的执行环境时,浏览器就作为宿主环境提供了宿主对象;因为这些对象在浏览器加载网页时就存在,可以看成它们是一些宿主类的实例,只是这些实例无须使用new运算符显式地实例化。这些宿主对象也就是浏览器公开给JS的API,通过这些API,JS应用程序可以获取浏览器相关的信息,也可以修改浏览器的一些显示;
浏览器作为JS解释器提供了应用程序接口,它提供了很多宿主对象用来完成一些操作;