- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 JavaScrip面向对象编程 JavaScript是一门基于对象的语言,实际上JavaScript中的一切都是对象。 3.1 JavaScript语言特性 函数是在JavaScript中实现面向对象编程的基础,此外apply、call等JavaScript语言特性也在JavaScript面向对象编程中起到了重要作用。 另外,闭包(也称匿名函数)的概念在JavaScript面向对象编程中得到了广泛的应用,它也是理解各类JavaScript开发框架实现原理的基础。 3.1.1 JavaScript中的函数 1.arguments、callee和caller属性 在函数调用过程中,我们可以通过arguments属性访问函数的输入参数,arguments参数是由脚本解释器自动创建的,不能手工创建或者修改。 arguments属性可以看作是一个Array对象,它具有length属性,可以通过序号访问每一个参数。 但是它并不是真正的Array对象,它不具备Array对象的join、shift等方法,而且它还具有自己独有的属性callee。 通过callee属性可以获取对正在执行的函数对象的引用。 例3-1是arguments和callee属性的应用示例。 【例3-1】 arguments和callee属性的应用 【例3-2】 callee和caller属性的应用 2.函数对象的多重身份 函数对象是JavaScript中一个很特殊的对象,其特殊性体现在它的多重身份上,请看例3-3的代码。 【例3-3】 Function对象应用示例 function关键字可以声明普通的函数,这一点和其他语言中函数的概念是相同的。 除此以外,它还可以用于类的声明和实现、对象的构造函数以及类引用。 例3-3中通过function关键字声明了Flower类,并且通过this关键字声明了两个属性name和color;然后在创建obj对象时,Flower ()又起到了对象构造函数的作用;最后的代码中使用instanceof关键字判断obj对象是否是Flower类的实例,此时Flower又起到了类引用的作用。 3.1.2 apply和call方法 apply方法和call方法都可以将函数绑定到其他对象上执行,区别在于调用参数形式的不同,apply方法通过数组形式传入函数的调用参数,而call方法使用逗号分隔的参数列表。 调用apply方法和call方法的语法如下所示: apply([thisObj[,argArray]]) call([thisObj[,arg1[,arg2[,[,.argN]]]]]) 例3-4说明了两者的区别。 【例3-4】 apply和call方法示例 3.1.3 this关键字 在JavaScript的对象系统中,this关键字常用于两种地方: (1)在构造器函数中,指代新创建的对象实例; (2)在对象的方法被调用时,指代调用该方法的对象实例。 如果一个函数被当作普通函数(而不是对象方法)调用,那么在函数中的this关键字将指向window对象。 当然如果this关键字不在任何函数中,那么它也指向Global对象。 3.1.4 使用for (… in …) for (… in …)语句可以遍历对象的所有属性和方法,例3-5所示的代码就遍历了Car对象的属性和方法,如果是属性则输出属性值,如果是方法则执行方法。 【例3-5】 for (… in …)示例 3.1.5 闭包 所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。 关于闭包,最简单的描述就是 ECMAScript 允许使用内部函数,即函数定义和函数表达式位于另一个函数的函数体内。 而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。 例3-6所示是一个使用闭包的示例。 【例3-6】 闭包示例 3.2 JavaScript面向对象编程实现 面向对象编程的基本要素是封装、继承和多态,下面介绍在JavaScript中实现这些特性的方法。 3.2.1 类的声明 在JavaScript中可以使用如下的方式进行类的声明。 function ClassA() {
您可能关注的文档
- Flash动画设计与制作实例教程 作者 王德永 樊继 第4章 广告设计.ppt
- Flash动画设计与制作实例教程 作者 王德永 樊继 第7章 动画片制作.ppt
- Flash动画设计与制作实例教程 作者 王德永 樊继 第8章 游戏制作.ppt
- Flash动画设计与制作实例教程 作者 王德永 樊继 第10章课件制作.ppt
- Flash动画制作案例教程 马震 本科Flash教材-02.ppt
- Flash动画制作案例教程 马震 本科Flash教材-03.ppt
- Flash动画制作案例教程 马震 本科Flash教材-04.ppt
- Flash动画制作案例教程 马震 本科Flash教材-05.ppt
- Flash动画制作案例教程 马震 本科Flash教材-08.ppt
- Flash动画制作实例教程 作者 刘荷花 刘三满 第2章 图形绘制与动画编辑.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第4章 正则表达式.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第6章 浏览器对象模型(BOM).ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第7章 DOM基础.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第9章 JavaScript控制页面样式.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第10章 JavaScript中的XML编程.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第11章 JavaScript与服务器的通信.ppt
- JavaScript程序设计教程 作者 李林 施伟伟 第12章 JavaScript与插件.ppt
- JavaScript脚本程序设计 作者 吴以欣 陈小宁 第1章 JavaScript简介.ppt
- JavaScript脚本程序设计 作者 吴以欣 陈小宁 第3章 JavaScript常用内置对象.ppt
- JavaScript脚本程序设计 作者 吴以欣 陈小宁 第4章 JavaScript常用文档对象.ppt
文档评论(0)