频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

AJAX基础:JavaScript中类的实现

来源:csdn 作者: 出处:巧巧读书 2006-06-16 进入讨论组
下一页 1 2 3 

  理解类的实现机制

  在JavaScript中可以使用function关键字来定义一个“类”,如何为类添加成员。在函数内通过this指针引用的变量或者方法都会成为类的成员,例如:

function class1(){
       var s="abc";
       this.p1=s;
       this.method1=function(){
               alert("this is a test method");
       }
}
var obj1=new class1();

  通过new class1()获得对象obj1,对象obj1便自动获得了属性p1和方法method1。

  在JavaScript中,function本身的定义就是类的构造函数,结合前面介绍过的对象的性质以及new操作符的用法,下面介绍使用new创建对象的过程。

  (1)当解释器遇到new操作符时便创建一个空对象;

  (2)开始运行class1这个函数,并将其中的this指针都指向这个新建的对象;

  (3)因为当给对象不存在的属性赋值时,解释器就会为对象创建该属性,例如在class1中,当执行到this.p1=s这条语句时,就会添加一个属性p1,并把变量s的值赋给它,这样函数执行就是初始化这个对象的过程,即实现构造函数的作用;

  (4)当函数执行完后,new操作符就返回初始化后的对象。

  通过这整个过程,JavaScript中就实现了面向对象的基本机制。由此可见,在JavaScript中,function的定义实际上就是实现一个对象的构造器,是通过函数来完成的。这种方式的缺点是:

  ·将所有的初始化语句、成员定义都放到一起,代码逻辑不够清晰,不易实现复杂的功能。

  ·每创建一个类的实例,都要执行一次构造函数。构造函数中定义的属性和方法总被重复的创建,例如:

this.method1=function(){
             alert("this is a test method");
      }

  这里的method1每创建一个class1的实例,都会被创建一次,造成了内存的浪费。下一节介绍另一种类定义的机制:prototype对象,可以解决构造函数中定义类成员带来的缺点。URL查看 http://www.qqread.com/ajax/n893125012.html 更多文章 更多内容请看Ajax技术专题Ajax技术应用开发Ajax基础专题,或进入讨论组讨论。
下一页 1 2 3 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章