简单的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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值