欢迎来到天天文库
浏览记录
ID:28184788
大小:17.57 KB
页数:4页
时间:2018-12-08
《浅析javascript实现基于原型对象的“继承”》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了确保“教学点数字教育资源全覆盖”项目设备正常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统的使用和维护。浅析JavaScript实现基于原型对象的“继承” 摘要:概述JavaScript实现继承的机制,对比基于类的继承,通过实例说明原型继承的特点,提出一个改进的“寄生组合模式”,使读者实现原型继承变得游刃有余。 关键词:JavaScript;原型继承;构造函数;原型对象 中图分类号:TP311文献标识码:A文章编号:1009--0091-02 Abstract:OverviewtheJavaSc
2、ript’simplementationofthemechanismontheinheritance,comparetoBasedontheclassofinheritance,explaintheprototypeofinheritance’scharacteristicsthroughexamples,proposeanimproved“parasiticcombinationmode”,andenablethereaderstorealizetheprototypeofinheritancebecometodoajobwithskillandease. Keyword
3、s:JavaScript,prototypeofinheritance,constructor,prototypeofobject 1概述为了充分发挥“教学点数字教育资源全覆盖”项目设备的作用,我们不仅把资源运用于课堂教学,还利用系统的特色栏目开展课外活动,对学生进行安全教育、健康教育、反邪教教育等丰富学生的课余文化生活。为了确保“教学点数字教育资源全覆盖”项目设备正常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统的使用和维护。 JavaScript是面向Web的编程语言,其高端、动态以及面向对象的编程
4、风格,使得JavaScript已经从一门简单的脚本语言进化成为一门强大的编程语言,其基于原型的继承风格,使用起来非常灵活、高效,但对于初学者,要准确理解原型对象及其继承机制还是比较困难,本文就JavaScript原型继承的方式进行了介绍,并结合实例进行分析。 2基于类的继承 首先,面向对象编程语言是基于类的语言,以Java为例,Java是基于类的语言,在基于类的语言中,对象是类的实例,并且一个类可以从另一个类继承。那么,在这些基于类的语言中,实现继承的好处:1)提高代码重用性高。如果我们新创建的类与已有的类有绝大部分相类似,则没有必要再重新定义这个完整的类。这样做可以实现
5、代码的重用,大大减少了软件开发的成本。2)继承可以实现面向对象的“多态”特性。程序员可以将子类的对象直接赋值给父类的引用,无需再编写显式的类型转化。既减轻了工作量又保证了类型系统在安全上的优势。如例1所示代码,这是Java中实现继承的语法,classB从classA继承,子类B的对象就继承了父类A的所有非私有化成员。 3基于原型的继承 原型对象为了充分发挥“教学点数字教育资源全覆盖”项目设备的作用,我们不仅把资源运用于课堂教学,还利用系统的特色栏目开展课外活动,对学生进行安全教育、健康教育、反邪教教育等丰富学生的课余文化生活。为了确保“教学点数字教育资源全覆盖”项目设备正
6、常使用,我校做到安装、教师培训同步进行。设备安装到位后,中心校组织各学点管理人员统一到县教师进修学校进行培训,熟悉系统的使用和维护。 在JavaScript中,类的所有实例对象都从同一个原型对象上继承属性。因此,原型对象是其核心。早期使用一种所谓的“工厂模式”,即通过定义函数返回一个新创建的对象,后者继承自某个原型对象。如例2所示代码,函数inherit返回了一个继承自原型对象p的新对象。此种方法并不常用,JavaScript还可以通过构造函数来创建并初始化对象,只不过JavaScript没有类定义和特殊的构造器定义,需要程序员自己定义一个构造函数来创建属性,而所有的函数都
7、可以被用来定义构造函数。如例3所示代码,在JavaScript中,只要创建一个新函数,就会根据一组特定规则为该函数创建一个prototype属性,而这个属性指向函数的原型对象。在默认情况下,原型对象会自动获得一个constructor属性,而这个属性包含一个指向prototype属性所在函数对象的指针。当一个函数对象被创建时,function构造器产生的函数对象会运行代码:“={constructor:this};”。 如图1所示,展现了构造函数,原型对象以及实例对象之间的关系。实例对象f指向原型对象
此文档下载收益归作者所有