JavaScript:面向对象编程的模拟实现方法(三)
2010-10-07 18:02
731 查看
之前学习了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
sfjsoo
这个框架的名字叫做sfjsoo,全名是Simple
Framework for JavaScript Object Oriented
Programming。这个框架的工作很简单,就是依据本系列的第二篇最终推荐的类的模拟方式和继承方式来构建类,而接受的参数就是下面的例子中的那种简单形式。有兴趣的可以看看。
东西放在下面这个url中了。
http://code.google.com/p/sfjsoo/
sfjsoo
的使用方法
使用sfjsoo来构建类能简单到什么程度呢,多说无益,还是直接看sample code吧。
Class.create({ Namesapce : "a.b.c.d.ClassB", Extends : a.b.c.ClassA, Constructor : function() {}, Fields : { field1 : 34, field2 : null }, Methods : { method1 : function() {}, method2 : function() {} }, Statics : { MEMBER : 23, METHOD : function() {} } });
按照以上的这种方式来模拟类的话,所有相关的项都是一目了然。跟我们平时写的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函数就可以了,父类的构造函数有什么参数,也是可以在这里传递的。
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
相关文章推荐
- JavaScript:面向对象编程的模拟实现方法(二)
- JavaScript:面向对象编程的模拟实现方法(一)
- javascript模拟评分控件实现方法
- JavaScript中模拟实现类似于Java的super关键字调用父类中同名方法
- javascript模拟select,jselect的方法实现
- javascript模拟评分控件实现方法
- JavaScript实现MIPS乘法模拟的方法
- javascript模拟select,jselect的方法实现
- javascript 面向对象编程方法的实现与实例
- javascript 模拟JQuery的Ready方法实现并出现的问题
- JavaScript一点也不简单—实现“跨Frame的层模拟菜单”的方法(译文)
- javascript实现模拟时钟的方法
- JavaScript模拟实现继承的方法
- JAVAScript js 模拟JAVA map类 实现put get 等JAVA map类方法
- javascript实现模拟时钟的方法
- javascript面向对象编程实现[定义(静态)属性方法--继承]
- javascript面向对象编程实现[定义(静态)属性方法--继承]
- JavaScript继承机制模拟实现
- javascript实现将数字转成千分位的方法小结【5种方式】