在面向对象的思想中,最核心的概念之一就是类。一个类表示了具有相似性质的一类事物的抽象,通过实例化一个类,可以获得属于该类的一个实例,即对象。
在JavaScript中定义一个类的方法如下:
function class1(){ //类成员的定义及构造函数 } |
这里class1既是一个函数也是一个类。可以将它理解为类的构造函数,负责初始化工作。
使用new操作符获得一个类的实例
在前面介绍基本对象时,已经用过new操作符,例如:
表示创建一个日期对象,而Date就是表示日期的类,只是这个类是由JavaScript内部提供的,而不是由用户定义的。
new操作符不仅对内部类有效,对用户定义的类也同样有效,对于上节定义的class1,也可以用new来获取一个实例:
function class1(){ //类成员的定义及构造函数 } var obj1=new class1(); |
抛开类的概念,从代码的形式上来看,class1就是一个函数,那么是不是所有的函数都可以用new来操作呢?是的,在JavaScript中,函数和类就是一个概念,当对一个函数进行new操作时,就会返回一个对象。如果这个函数中没有初始化类成员,那就会返回一个空的对象。例如:
//定义一个hello函数 function hello(){ alert("hello"); } //通过new一个函数获得一个对象 var obj=new hello(); alert(typeof(obj)); |
从运行结果看,执行了hello函数,同时obj也获得了一个对象的引用。当new一个函数时,这个函数就是所代表类的构造函数,其中的代码被看作为了初始化一个对象。用于表示类的函数也称为构造器。
使用方括号([ ])引用对象的属性和方法
在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法)很简单,如:
对象名.属性(方法)名
还可以用方括号的形式来引用:
对象名["属性(方法)名"]
注意,这里的方法名和属性名是一个字符串,不是原先点(? )号后面的标识符,例如:
var arr=new Array(); //为数组添加一个元素 arr["push"]("abc"); //获得数组的长度 var len=arr["length"]; //输出数组的长度 alert(len); |
 图1 |
图1显示了执行的结果。
由此可见,上面的代码等价于:
var arr=new Array(); //为数组添加一个元素 arr.push("abc"); //获得数组的长度 var len=arr.length; //输出数组的长度 alert(len); |
这种引用属性(方法)的方式和数组类似,体现了JavaScript对象就是一组属性(方法)的集合这个性质。 www.goodsgy.com[1] [2] [3] [4] [5] 下一页
|
|
|
|
在百度中搜索:AJAX中JavaScript支持面向对象的基础
在Google中搜索:AJAX中JavaScript支持面向对象的基础
在Yahoo中搜索:AJAX中JavaScript支持面向对象的基础 |
收藏到网摘:新浪VIVI
365key
我摘
POCO网摘
博采中心
YouNote
和讯网摘
天天收藏
|
|
|
|
[]
[返回上一页]
[打 印]
[收 藏] |
|
|