免费论文查重: 大雅 万方 维普 turnitin paperpass

研讨面向对象面向对象JaScript可维护代码编写研究

最后更新时间:2024-01-20 作者:用户投稿原创标记本站原创 点赞:22226 浏览:96517
论文导读:
摘 要:本文从经典的面向对象编程的基本知识入手,通过分析JaScript面向对象不一样的地方,进一步对如何能够写出可维护的面向对象的JaScript 代码进行了相关研究。
关键词:面向对象;JaScript;类;继承;重用
中图分类号:TP311.10
写出可维护的面向对象的JaScript代码不仅节约时间,还让自已享受重用代码的过程。对于每一位从事JaScript代码编写的人员来说,如何编写可重用的代码都成为其追求的目标。在开始探究如何编写可维护的面向对象JaScript代码之前,先来看看什么是面向对象。
1 面向对象
面向对象编程主要通过代码代表现实世界中的实质对象。要创建对象,首先需要写一个“类”来定义。类可以代表所有的东西,而每次要创建对象的时候,就从类实例化一个对象。对象实质上是数据的容器,对象包括处理数据的函数(也叫“方法”)。方法被用作媒介来确保数据的完整性,以及在储存之前对数据进行转换。最后,类还可以继承其他的类,继承可以在不同类中重复使用相同代码。
2 JaScript面向对象不一样
上面概述了经典的面向对象编程的基本知识。说经典是因为JaScript并不遵循这些规则。相反地,JaScript的类是写成函数的样子,而继承则是通过原型实现的。原型继承意味着使用原型属性来实现对象的继承,而不是从类继承。

2.1 对象的实例化

以下是 JaScript 中对象实例化的例子:
// 定义 Employee 类
function Employee (num, fname, lname) {this.getFullName = function () {
return fname + " " + lname;}};
// 实例化 Employee 对象
var john = new Employee ("4815162342", "John", "Doe");
alert ("The employee's full name is " + john.getFullName ());
在这里,有三点要注意:
(1)“class”函数名的第一个字母要大写。表明该函数是被实例化。
(2)在实例化时使用了new操作符。
(3)因为getFullName指定给this操作符了,所以是公共的,但是fname和lname则不是。

2.2 原型继承

下面是JaScript中原型继承的例子:// 定义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 类
Employee.prototype = new Human ();
// 实例化 Employee 对象
var john = new Employee ("4815162342");
john.setName ("John", "Doe");
alert (john.getFullName () + "'s employee number is " + john.getNum ());
这次,创建的Human类包含人类的一切共有属性,将fname和lname放进去,因为不仅员工才有名字,所有人都有名字。然后将Human对象赋值给它的prototype属性。

2.3 通过继承实现代码重用

在上面的例子中,原来的Emp源于:普通论文格式范文www.7ctime.com
loyee类被分解成两部分。所有的人类通用属性被移到了Human类中,然后让Employee继承Human。这样,Human里的属性就论文导读:
可以被其他对象使用,例如Student(学生),Client(顾客),Citizen(公民),Visitor(游客)等,这是分割和重用代码较好的方式。

2.4 Public(公有的)和Private(私有的)

根据对象中处理数据的方式不同,数据会被处理为私有的或者公有的。私有属性并不一定意味着其他人无法访问,只是某个方法需要用到。

2.5 只读

有时,只想在创建对象的时候有一个值。一旦创建,就不想再改变。可以创建一个私有变量,在实例化的时候给它赋值。
function Animal (type) {
var data = []; data['type'] = type; this.getType = function () {
return data['type'];}}
var fluffy = new Animal ('dog');
fluffy.getType (); // 返回 'dog'
此例中,Animal类中创建了一个本地数组data。当Animal对象被实例化时,传递了一个type的值并将其放在data数组中。因为它是私有的,所以该值无法被覆盖,虽可以读到对象的类型却无法改变。 有一点非常重要,就是当对象被继承时,“只读”技术就无法运用。在执行继承后,每个实例化的对象都会共享那些只读变量并覆盖其值。最简单的解决办法是将类中的只读变量转换成公共变量,但必须保持它们是私有的。

2.6 Public(公有)

当然也有时候想任意读写某个属性的值。要实现这一点,需要使用this操作符。
function Animal () { this.mood = ''; }
var fluffy = new Animal ();
fluffy.mood = 'happy';
fluffy.mood; // 返回 'happy'
这次Animal类公开了一个叫mood的属性,可以被随意读写。同样地,还可以将函数指定给公有的属性,例如之前例子中的getType函数。只要注意不要给getType赋值。

2.7 完全私有

最后,可能发现需要一个完全私有化的本地变量。这样,可以使用与第一个例子中一样的模式而不需要创建公有方法。
function Animal () { var secret = "You'll never know!" }摘自:本科毕业论文结论www.7ctime.com
var fluffy = new Animal ();

2.8 写灵活的API

既然提到类的创建,为了保持与产品需求变化同步,需要保持代码不过时。尽管准确预测未来是不大可能,但是却完全可以将代码写灵活以备将来不时之需。

2.9 让代码可嵌入

随着时间流逝,产品需求可能对类的行为有更多的要求。而该行为却与类的核心功能没有关系。也有可能是类的唯一实现,你可能想把一些功能放在类的里面,但是它们不属于那里,唯一可行的方法是,允许将行为嵌入到代码当中。JaScript库可以足够容易地做到这一点。
3 总结
如果打算重用代码,无论是在同一网页,同一网站还是跨项目操作,考虑一下在类里面将其打包和组织起来。面向对象JaScript很自然地帮助实现更好的代码组织以及代码重用。除此以外,还应该有远见的确保代码具有足够的灵活性,可以在写完代码后持续使用很长时间。编写可重用的JaScript 代码可以大大节省代码编写者、开发团队和企业的开发时间。
参考文献:
Bruce Eckel.《Think In Je》中文版[OL].http://wenku.baidu.com/.
刘正林.Ja技术基础[M].武汉:华中科技大学出版社,2002.
[3]http://scholar.ilib.cn/Abstract.aspx?A=论文导读:jsjgcyyy200422033.作者简介:李超(1979-),男,贵州省遵义市人,高校讲师,软件工程硕士,主要研究领域:计算机应用、计算机网络,计算机辅助设计。上一页123
jsjgcyyy200422033.
作者简介:李超(1979-),男,贵州省遵义市人,高校讲师,软件工程硕士,主要研究领域:计算机应用、计算机网络,计算机辅助设计。