javascript高级程序设计-对象

javascript高级程序设计-对象

ID:6008587

大小:38.50 KB

页数:3页

时间:2017-12-30

javascript高级程序设计-对象_第1页
javascript高级程序设计-对象_第2页
javascript高级程序设计-对象_第3页
资源描述:

《javascript高级程序设计-对象》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Javascript高级程序设计-对象学习Javascript,最难的地方是什么?Object(对象)最难,初学者不容易掌握。Javascript是一种基于对象(object-based)的语言,它的语法中没有class(类)。C#面向对象基础1、类是数据封装的基本单位,是重复使用的最小单位。类的成员:变量、方法、属性、事件、常数对象是类在内存中的实体,类用于描述对象在内存中的数据。2、静态方法可以不建立类的对象,即不用new实例化,而用类直接调用:类名.方法名()Static变量通常用于配置全局共用的区块3、new实例化对象后,对象将会

2、被配置在堆积Heap中,堆栈Stack内保存的是指向堆积Heap中对象所在位置的参考指针。实例化的那个对象用于存放的是指针。4、this操作数this操作数是指向此对象的参考指针。也就是实例化后就可以使用this来存取这一对象实体。还可以用于解决名称相同的问题:this.Name=Name(参数)。this还可以用来返回目前对象的参考:this.Name=Name;returnthis。Javascript面向对象基础Javascript定义类(class)的三种方法一、构造函数内部用this关键字指代实例对象。functionClass

3、(){this.name="名称";}类的属性和方法,还可以定义在构造函数的prototype对象之上,Javascript规定,每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的实例继承。Class.prototype.pwd=function(){alert("密码");}生成实例的时候,使用new关键字。varobj=newClass();alert(obj.name);//名称alert(obj.pwd);//密码Prototype模式的验证方法1.isPrototypeOf(

4、)这个方法用来判断,某个proptotype对象和某个实例之间的关系。alert(Class.prototype.isPrototypeOf(obj));//true2.hasOwnProperty()每个实例对象都有一个hasOwnProperty()方法,用来判断某一个属性到底是本地属性,还是继承自prototype对象的属性。alert(obj.hasOwnProperty("name"));//true3.in运算符in运算符可以用来判断,某个实例是否含有某个属性,不管是不是本地属性。alert("name"inobj);//tr

5、ue二、Object.create()为了解决"构造函数法"的缺点,更方便地生成对象,Object.create()用这个方法,"类"就是一个对象,不是函数。if(!Object.create){//兼容各大浏览器Object.create=function(o){functionF(){}F.prototype=o;returnnewF();};}varObj={fn:function(){varo={};}};varo=Object.create(Obj);alert(o.fn())//名称这种方法比"构造函数法"简单,但是不能实现私

6、有属性和私有方法,实例对象之间也不能共享数据,对"类"的模拟不够全面。三、不使用this和prototype,首先,它也是用一个对象模拟"类",在这个类里面,定义一个构造函数fn(),用来生成实例。varObj={fn:function(){varo={};o.name="名称";o.pwd=function(){return"密码";};returno;}};使用的时候,调用fn()方法,就可以得到实例对象。alert(Obj.fn().name)//名称这种方法的好处是,容易理解,结构清晰优雅,符合传统的"面向对象编程"的构造,因此可

7、以方便地部署下面的特性。封装把变量、方法、属性、事件、常数封装到一个对象里。继承让一个类继承另一个类,实现起来很方便。只要在前者的fn()方法中,调用后者的fn()方法即可。私有属性和私有方法在fn()方法中,只要不是定义在Obj对象上的方法和属性,都是私有的。数据共享有时候,我们需要所有实例对象,能够读写同一项内部数据。这个时候,只要把这个内部数据,封装在类对象的里面、fn()方法的外面即可。varv1=Obj.fn().name;varv2=Obj.fn().name;alert(v1)//名称alert(v2)//名称

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。