读书人

容易的js面向对象框架实现

发布时间: 2014-05-14 16:33:23 作者: rapoo

简单的js面向对象框架实现
新年上班第一天,闲暇之余,看了下jquery作者john resig关于继承的一些idea,顺便自己写了个简单的js继承小框架
/**
* 简单的js继承小框架
* @date 2014/2/8
* @author lsj
*/
(function(){

//基类
this.JClass=function(){

}
//继承方法(创建一个新类继承自该类)
JClass.extend=function(child)
{
var parent=new this;
var superpro=this.prototype;
//将子类的方法赋给父类的原型
for(var item in child)
{
superpro[item]=child[item];
}
//覆盖JClass基类,提供子类初始化方法入口
function JClass()
{
//如果子类有写init方法,则通过该方法进行类初始化
if(this.init)
{
this.init.apply(this,arguments);
}
}
//将子类的原型指向父类的实例(该实例的_proto_指向superpro)
JClass.prototype=parent;
//改变原型的构造函数指向
JClass.prototype.constructor=JClass;
//实现JClass的可继承
JClass.extend=arguments.callee;

return JClass;
}
})();
var Parent=JClass.extend({"name":"zhangsan","age":"10"});

var Child=Parent.extend({init:function(data){this.data=data;},"childname":"this is childname",sayHello:function(){alert(this.data)}});

var cchild=new Child("this is the initial method of child");

console.dir(cchild); //cchild的对象导图

cchild.sayHello(); //打印出this is the initial method of child

读书人网 >JavaScript

热点推荐