- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于JavaScript的面向对象可维护代码编写.doc
基于JavaScript的面向对象可维护代码编写
摘要:从经典的面向对象编程基本知识入手,通过分析JavaScript面向对象的不同之处,对如何写出可维护的面向对象的JavaScript 代码进行了相关研究。
关键词:面向对象;JavaScript;类;继承;重用
中图分类号:TP319
文献标识码:A 文章编号:1672-7800(2014)003-0052-03
0 引言
能够写出可维护的面向对象的JavaScript 代码,不仅可以节约时间,还能享受重用代码的过程。对于每一位从事或即将从事JavaScript代码编写的人员来说,如何编写可重用的不过时的JavaScript 代码都将成为其追求的目标。在开始探究如何编写可维护的面向对象 JavaScript 代码之前,先要弄清楚什么是面向对象。
1 面向对象
面向对象编程主要通过代码代表现实世界中的实质对象。要创建对象,首先需要写一个“类”来定义。类几乎可以代表所有的东西:账户、员工、导航菜单、汽车、植物、广告、饮料等等。而每次要创建对象的时候,就要从类实例化一个对象。换句话说,就是创建类的实例做为对象。事实上,通常处理一个以上的同类事物就会使用到对象。另外,只需要简单的函数式程序就可以做的很好。对象实质上是数据的容器。因此在一个 employee 对象中,可能要储存员工号、姓名、入职日期、职称、工资、资历等等。对象也包括处理数据的函数(也叫做“方法”)。方法被用作媒介来确保数据的完整性,以及在储存之前对数据进行转换。例如,方法可以接收任意格式的日期,然后在储存之前将其转化成标准化格式。最后,类还可以继承其它类。继承可以在不同类中重复使用相同代码。例如,银行账户和音像店账户都可以继承一个基本的账户类,里面包括个人信息、开户日期、分部信息等。然后每个类都可以定义交易或者借款处理等数据结构和方法。
2 JavaScript 面向对象差异
上面概述了经典的面向对象编程的基本知识,说经典是因为 JavaScript 并不遵循这些规则,相反地,JavaScript 的类是写成函数的样子,而继承则是通过原型实现的。原型继承基本上意味着使用原型属性来实现对象的继承,而不是从类继承类。
2.1 对象实例化
以下是 JavaScript 中对象实例化的例子:〖HT5〗
// 定义 Employee 类
function Employee (num, fname, lname) {
this.getFullName = function () {
return fname + + lname;
}
};
// 实例化 Employee 对象
var john = new Employee (4815162342, John, Doe);
alert (The employees full name is + john.getFullName ());
在这里,有3个重点需要注意:
(1)“class”函数名的第一个字母要大写。这表明该函数的目的是被实例化而不是像一般函数一样被调用。
(2)在实例化的时候使用了 new 操作符。如果省略掉 new 而仅仅调用函数则会产生很多问题。
(3)因为 getFullName 指定给了this操作符,所以是公共可用的,但是 fname 和 lname 则不是。由 Employee 函数产生的闭包给了 getFullName 到 fname 和 lname 的入口,但同时对于其它类仍然是私有的。
2.2 原型继承
下面是 JavaScript 中原型继承的例子:
// 定义 Human 类
function Human () {
this.setName = function (fname, lname) {
this.fname = fname;
this.lname = lname;
}
this.getFullName = function () {
return this.fname + + this.lname;
}
}
// 定义 Employee 类
function Employee (num) {
this.getNum = function () {
return num;
}
};
//让 Employee 继承 Human 类
Etotype = new Human ();
// 实例化 Employee 对象
var john = new
您可能关注的文档
- 基于C#的网络爬虫搜索引擎的设计.doc
- 基于C++.NET的台湾青枣种植信息管理系统数据库开发.doc
- 基于C++的保密文件加密处理设计.doc
- 基于C++的视频监控系统的设计与实现.doc
- 基于C++语言的跨平台软件开发的实现.doc
- 基于C++语言的跨平台软件开发的设计.doc
- 基于C8051F单片机的低频信号发生器的设计与应用.doc
- 基于CAD的注水管内壁除垢钻头设计.doc
- 基于CAN总线的ECU设计.doc
- 基于CAN总线的教室灯光智能控制系统的研究.doc
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 新人教版高中物理必修第一册学案:2.2匀变速直线运动的速度与时间的关系.doc VIP
- 新生儿低氧血症的常规管理PPT课件.pptx VIP
- 高考英语句子成分及句子基本结构(共32张PPT).pptx VIP
- 药物成瘾教案.ppt VIP
- 广东省广州市五校2022-2023学年高一下学期期末联考物理试卷及参考答案.pdf VIP
- 海砂混凝土工程施工方案(3篇).docx VIP
- 2024年湖北省执业药师继续教育处方审核—中西药联合用药(3)答案.docx VIP
- 冷热疗法的效应.ppt VIP
- 卫生院优质服务基层行创建资料(4.8.1 信息公开).docx VIP
- 呼吸衰竭病人护理查房.pptx VIP
文档评论(0)