且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

javascript:面向对象编程基础:封装

更新时间:2022-09-12 22:16:11

“在面向对象的思想中,最核心的概念之一就是类。一个类表示了具有相似性质的一类事物的抽象,通过实例化一个类,可以获得属于该类的一个实例 (即对象)”。很长一段时间以来(这里本人要幸灾乐祸地说),js是“一种点缀的作用,完成很有限的功能,诸如表单验证之类,其语言本身也一直被当作过程化的语言使用,很难完成复杂的功能。”。但是(这里本人要苦大仇深、痛心疾首地说),“而Ajax的出现使得复杂脚本成为必需的组成部分,这就对JavaScript 程序设计提出了新的要求,很多Ajax应用开始利用JavaScript面向对象的性质进行开发,使逻辑更加清晰。事实上,JavaScript 提供了完善的机制来实现面向对象的开发思想。”。额的神啊,本来就不想学不敢学的,现在不得不硬着头皮学了。
这里关于对象就废话这么多了。我们都知道面向对象编程的三个主要特点是:封装、继承和多态。下面就围绕着这三个特点,记录一些学习心得。
好的,先从封装性开始介绍,众所周知,对象是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。面向对象的封装比传统语言的封装更为清晰、更为有力。Code is cheap.来看简单的代码:
javascript:面向对象编程基础:封装Code

上面的代码定义了一个类class1,这就是js中简单的封装,下面我们看js如何定义“静态类”,

javascript:面向对象编程基础:封装Code

接着看“抽象类”:

javascript:面向对象编程基础:封装Code

我们看到,上面“让class1继承于base 并实现其中的oninit方法时”,使用了“继承”的概念,请留意。再来看一下执行的效果:

javascript:面向对象编程基础:封装Code
结语:前面我们已经简单模拟实现了普通类,“静态类”,“抽象类”,的定义(和C#相比),那么接口呢,委托呢?js可以模拟定义出来吗?果然是学无止境。不善于借鉴和学习的程序员不是好程序员,推荐两篇关于js接口和委托的文章,http://www.cnblogs.com/harrychen66/archive/2008/10/10/488457.htmlhttp://www.cnblogs.com/harrychen66/archive/2006/08/19/481328.html




本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2008/10/22/1317137.html,如需转载请自行联系原作者