JavaScript:面向对象编程的模拟实现方法(三)

之前学习了JavaScript中模拟类和继承的多种方法,以及在选择模拟类和继承的方法时需要考虑的因素,接下来就该是具体的应用了。本篇是构建了一个简单的framework,为模拟类和继承提供了一个简单,易于理解的方式。

sfjsoo

这个框架的名字叫做sfjsoo,全名是Simple Framework for JavaScript Object Oriented Programming。这个框架的工作很简单,就是依据本系列的第二篇最终推荐的类的模拟方式和继承方式来构建类,而接受的参数就是下面的例子中的那种简单形式。有兴趣的可以看看。

东西放在下面这个url中了。

http://code.google.com/p/sfjsoo/

sfjsoo 的使用方法

使用sfjsoo来构建类能简单到什么程度呢,多说无益,还是直接看sample code吧。

按照以上的这种方式来模拟类的话,所有相关的项都是一目了然。跟我们平时写的Java/C++代码有很大的相似度,理解上的难度会降低很多。

 

上面的sample code已经给我们提供了写类的每个项的方式。其中
NameSpace:指代类的全名,也就是namespace(或者说package)+点+类名,must项;
Extends:指该类的父类,optional项;
Constructor:指类的构造函数,必须是function,optional项;
Fields:类的各个field,值不能是function,optional项;
Methods:类的各个function,值必须是function,optional项;
Statics:类的静态变量和静态方法,optional项。

 

另外,框架中还给每个类提供了调用父类的构造函数的方式,类似于Java中的super方法,在构造函数中调用。代码其实很简单,通过this调用Super函数就可以了,父类的构造函数有什么参数,也是可以在这里传递的。

 

其他的sample code

1. http://code.google.com/p/sfjsoo/source/browse/trunk/test/sample.js
2. http://code.google.com/p/sfjsoo/source/browse/trunk/test/test.js

参考资料:

1. A Base Class for JavaScript Inheritance
    http://dean.edwards.name/weblog/2006/03/base/
2. Source code of Base.js:
    http://dean.edwards.name/base/Base.js

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值