JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt

JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt

ID:50050623

大小:1.17 MB

页数:32页

时间:2020-03-08

JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt_第1页
JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt_第2页
JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt_第3页
JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt_第4页
JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt_第5页
资源描述:

《JavaScript程序设计教程 教学课件 作者 李林 施伟伟 第3章 JavaScript面向对象编程.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章JavaScrip面向对象编程JavaScript语言特性3.1JavaScript面向对象编程实现3.2JavaScript与设计模式3.3JavaScript是一门基于对象的语言,实际上JavaScript中的一切都是对象。3.1JavaScript语言特性函数是在JavaScript中实现面向对象编程的基础,此外apply、call等JavaScript语言特性也在JavaScript面向对象编程中起到了重要作用。另外,闭包(也称匿名函数)的概念在JavaScript面向对象编程中得到了广泛的应用,它也是理解各类JavaS

2、cript开发框架实现原理的基础。3.1.1JavaScript中的函数1.arguments、callee和caller属性在函数调用过程中,我们可以通过arguments属性访问函数的输入参数,arguments参数是由脚本解释器自动创建的,不能手工创建或者修改。arguments属性可以看作是一个Array对象,它具有length属性,可以通过序号访问每一个参数。但是它并不是真正的Array对象,它不具备Array对象的join、shift等方法,而且它还具有自己独有的属性callee。通过callee属性可以获取对正在执行的函

3、数对象的引用。例3-1是arguments和callee属性的应用示例。【例3-1】arguments和callee属性的应用【例3-2】callee和caller属性的应用2.函数对象的多重身份函数对象是JavaScript中一个很特殊的对象,其特殊性体现在它的多重身份上,请看例3-3的代码。【例3-3】Function对象应用示例function关键字可以声明普通的函数,这一点和其他语言中函数的概念是相同的。除此以外,它还可以用于类的声明和实现、对象的构造函数以及类引用。例3-3中通过function关键字声明了Flower类,并

4、且通过this关键字声明了两个属性name和color;然后在创建obj对象时,Flower()又起到了对象构造函数的作用;最后的代码中使用instanceof关键字判断obj对象是否是Flower类的实例,此时Flower又起到了类引用的作用。3.1.2apply和call方法apply方法和call方法都可以将函数绑定到其他对象上执行,区别在于调用参数形式的不同,apply方法通过数组形式传入函数的调用参数,而call方法使用逗号分隔的参数列表。调用apply方法和call方法的语法如下所示:apply([thisObj[,arg

5、Array]])call([thisObj[,arg1[,arg2[,[,.argN]]]]])例3-4说明了两者的区别。【例3-4】apply和call方法示例3.1.3this关键字在JavaScript的对象系统中,this关键字常用于两种地方:(1)在构造器函数中,指代新创建的对象实例;(2)在对象的方法被调用时,指代调用该方法的对象实例。如果一个函数被当作普通函数(而不是对象方法)调用,那么在函数中的this关键字将指向window对象。当然如果this关键字不在任何函数中,那么它也指向Global对象。3.1.4使用for

6、(…in…)for(…in…)语句可以遍历对象的所有属性和方法,例3-5所示的代码就遍历了Car对象的属性和方法,如果是属性则输出属性值,如果是方法则执行方法。【例3-5】for(…in…)示例3.1.5闭包所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。关于闭包,最简单的描述就是ECMAScript允许使用内部函数,即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。例3-6

7、所示是一个使用闭包的示例。【例3-6】闭包示例3.2JavaScript面向对象编程实现面向对象编程的基本要素是封装、继承和多态,下面介绍在JavaScript中实现这些特性的方法。3.2.1类的声明在JavaScript中可以使用如下的方式进行类的声明。functionClassA(){this.p1="p1";this.p2="p2";this.f1=function(){alert("f1");}this.f2=function(){alert("f2");}}1.私有成员变量类中除了公有成员以外可能还会有一些私有成员变量,Ja

8、vaScript可以通过声明局部变量的方式定义私有成员变量。2.静态成员在JavaScript中可以通过下面的方式声明静态属性和静态方法。ClassA.staticProp="静态成员变量";ClassA.staticM

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

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

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