JavaScript的面向对象特性
JavaScript的面向对象特性
JavaScript是基于对象和事件驱动并具有安全性能的脚本;JavaScript虽然不是面向对象的编程语言但具有很多面向对象的特性。
1.面向对象开发
a) 对象的创建
- var obj=new Object();
- 对象的创建需要构造函数:内置函数使用内置的构造函数来创建;自定义的对象用自定义的构造函数来创建
b) 对象的调用
- 使用创建及时的对象名来调用
- 创建对象时所有指向对象的变量都存储了对象的引用,一旦有一个变量的属性改变,所有指向该引用的对象的属性值都改变
c) 对象的属性和方法
d) 对象的废除
- 将所有对象的引用设置为null来强制废除对象。
e) 对象的绑定(早绑定和晚绑定)--模糊
- 绑定:将实例化的对象与类结合
- 早绑定:在实例化之前定义对象的属性和方法--C#、Java、VB
- 晚绑定:在解释器或编译器执行过程中才对对象的类型进行检查--许多动态语言都是晚绑定的,如JavaScript
2.对象类型
a) 本地对象
- JavaScript提供的与宿主无关的内部对象
- 包括:Array、Boolean、Date、String等
- 使用时可直接调用这些本地对象,使用前需实例化,需要进行创建工作
b) 内置对象
- JavaScript提供的内部对象
- 无需实例化,可直接调用其相关属性
- Global、Math
--Global:其特别之处在于其根本不存在,不能用Global关键字调用其属性和方法。其具有很多的属性和方法,JavaScript中任何不需要使用对象名的属性和方法,以及所有本地的对象的构造方法都是Global对象的属性和方法(自定义对象除外)
c) 宿主对象
- JavaScript解释器(一般是浏览器)提供的可以供JavaScript调用的对象
- 例如IE提供的一些Active组件、DOM对象
- 宿主对象对运行平台有依赖,所以不是所有浏览器支持宿主对象;但DOM作为W3C标准例外
d) 作为关联数组的对象
- 属性调用:对象名.属性名;对象名[“属性名字符串”]--关联数组对象
- 如,由公交线路获得公交数量
现有1路公交20辆;2路公交30辆;
function busObj(line,num)
{
this.line=line;
this.num=num;
}
var busAry=new Array();
利用数组对象(对象的属性不能是字符串,必须是一个变量):
busAry[0]=new busObj(“1路”,20);
busAry[1]=new busObj(“2路”,30);
var num=busAry[0].num+busAry[1];
利用关联数组对象:
busAry[“1路”]=20;
busAry[“2路”]=30;
var num=busAry[“1路”]+ busAry[“2路”];

浙公网安备 33010602011771号