选择显示字体大小

javascript oop

来自:http://www.matrix.org.cn/blog/liu2liu2/

1. 什么是javascript
javascript 是一种描述性的脚本语言(script language),它可以非常自由地被嵌入到html 的文件之中。使用javascript 可以做什么呢?它的作用很简单,就是对网页浏览者当前所触发的事件进行处理或对网页进行初始化工作。它是事先在网页中编写好代码(或叫做“脚本”),然后此代码伴随html文件一起传送到客户端的浏览器上,由浏览器对这些代码进行解释执行,而其执行期间并没有劳驾服务器帮忙,这样就减轻了服务器的负担。
许多编程高手都瞧不起javascript编程,认为只是小孩子的玩意。的确,javascript作为一种脚本语言,比起其他语言来说,显得非常简单,没有很复杂的语法,没有庞杂的体系架构。

2. 面向对象编程(object-oriented programming)
一个世界,可以完全由对象组成,而将算法所基于的世界只用对象表现出来,再进行后续代码的编写,这种编程方法就被称作面向对象的编程思想。
oop的三大要素:
1. 封装
2. 继承
3. 多态

3. javascript如何实现oop
3.1. 封装(wrap)
javascript的对象封装,主要依靠function来实现。以下是一个简单的示例:
//*********************************************
// 定义pet(宠物)对象
//*********************************************
function pet() {
        //名称
        this.name = null;
        //颜色
        this.color = null;
        //获取名称
        this.getname = function() {
                return this.name;
        };
        //设置名称
        this.setname = function(newname) {
                this.name = newname;
        };
        //获取颜色
        this.getcolor = function() {
                return this.color;
        };
        //设置颜色
        this.setcolor = function(newcolor) {
                this.color = newcolor;
        };
        //定义一个需要实现的方法
        this.getfood = null;
        //获取宠物的描述信息
        this.tostring = function() {
                return "the pet is " + this.name +",it's "+this.color+",and it likes "+this.getfood()+".";
        };
}
3.2. 继承(inheritance)
javascript的继承的实现主要依靠prototype(原型)来实现,下面为pet类编写一个子类。

//*********************************************
// 定义cat(猫)对象
//*********************************************
function cat() {
        //实现pet中定义的getfood方法
        this.getfood = function() {
                return "fish";
        };
}

//声明cat的原型,即cat的父类
cat.prototype = new pet;

多层次继承
//*********************************************
// 定义persiancat(波斯猫)对象
//*********************************************
function persiancat() {
}

//声明persiancat的原型,即persiancat的父类
persiancat.prototype = new cat;
3.3.        重载(override)与多态(polymorphism)
//重载pet的tostring方法
persiancat.prototype.tostring = function() {
        return "it's just a persian cat.";
};

注意:override和overload的区别,javascript是不支持overload的,原因是……你自己想想吧。

javascript是一种弱类型的语言,所以不要把它与c++、java等语言进行比较。
4. 附录
4.1. 完整的示例
4.1.1. pet.js
//*********************************************
// 定义pet(宠物)对象
//*********************************************
function pet() {
        //名称
        this.name = null;
        //颜色
        this.color = null;
        //获取名称
        this.getname = function() {
                return this.name;
        };
        //设置名称
        this.setname = function(newname) {
                this.name = newname;
        };
        //获取颜色
        this.getcolor = function() {
                return this.color;
        };
        //设置颜色
        this.setcolor = function(newcolor) {
                this.color = newcolor;
        };
        //定义一个需要实现的方法
        this.getfood = null;
        //获取宠物的描述信息
        this.tostring = function() {
                return "the pet is " + this.name +",it's "+this.color+",and it likes "+this.getfood()+".";
        };
}

//*********************************************
// 定义cat(猫)对象
//*********************************************
function cat() {
        //实现pet中定义的getfood方法
        this.getfood = function() {
                return "fish";
        };
}

//声明cat的原型,即cat的父类
cat.prototype = new pet;

//*********************************************
// 定义persiancat(波斯猫)对象
//*********************************************
function persiancat() {
}

//声明persiancat的原型,即persiancat的父类
persiancat.prototype = new cat;

//重载pet的tostring方法
persiancat.prototype.tostring = function() {
        return "it's just a persian cat.";
};

//*********************************************
// 定义dog(狗)对象
//*********************************************
function dog() {
        //实现pet中定义的getfood方法
        this.getfood = function() {
                return "bone";
        };
}

//声明dog的原型,即dog的父类
dog.prototype = new pet;
4.1.2. pet.htm
<script language=&quot;javascript&quot; src=&quot;pet.js&quot; >
</ script >
< script language=&quot;javascript&quot;>
//定义一个cat对象
var cat = new cat();
cat.setname(&quot;mimi&quot;);
cat.setcolor(&quot;white&quot;);

//定义一个dog对象
var dog = new dog();
dog.setname(&quot;wangwang&quot;);
dog.setcolor(&quot;yellow&quot;);

//定义一个persiancat对象
var persiancat = new persiancat();

//定义数组,保存上面的三个对象
var pets = new array(3);
pets[0] = cat;
pets[1] = dog;
pets[2] = persiancat;

//测试程序
for(var i=0,size=pets.length;i<size;i++) {
        alert(pets[i].tostring());
}
</script>
4.1.3. 运行结果

弹出三个对话框,分别如下:
the pet is mimi,it's white,and it likes fish.
the pet is wangwang,it's yellow,and it likes bone.
it's just a persian cat.
本示例在ie6.0下测试通过。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons