hrch

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  1 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

2009年9月6日 #

创建一个类分两步走:
第一步:定义构造函数,处理传入的初始化参数(完成属性的继承)
第二步:实现继承,即增加新的方法。(完成方法的继承)

示例:
假设我们已有一个Person类,定义如下:
var Person=function(config){
  Ext.apply(this,config);
 basename="hrch";
 baseMethod=function(){alert("a method of base class!")};
 };

我们想定义一个Student类,继承自Person:
/*
 *说明:config中也可以包含方法,但最好不要这样做,新的方法放在第二步中定义。
 * /
第一步:定义构造函数,完成初始化
var Student=function(config){
 //Student.superclass.constructor这个对象由第二步获得,没有第二步,则这个地方会出错。
 Student.superclass.constructor.apply(this,config);//将config中的属性方法追加到Student对象中。
}

/*
 *说明:这里也可以定义新的属性,但最好不要这样做,新的属性放在第一步中定义。
 * /
第二步:实现继承
Ext.extend(Student,Person,{
 newMethod1:function(){alert("newMethod1")},
 newMethod2:function(){alert("newMethod2")},
});

测试代码:
<script type="text/javascript">
    var Person=function(config){
     Ext.apply(this,config);
 this.basename="hrch";
 this.baseMethod=function(){alert("a method of base class!")};
 };  
    var Student=function(config){
 //Student.superclass.constructor这个对象由第二步获得,没有第二步,则这个地方会出错。
 Student.superclass.constructor.call(this,config);//将config中的属性方法追加到Student对象中。
    };
    Ext.extend(Student,Person,{
 newMethod1:function(){alert("newMethod1");},
 newMethod2:function(){alert("newMethod2");}
    });

    var stu=new Student({name:"student",age:"24"});
    alert(stu.name);
    alert(stu.age);
    stu.newMethod1();
    stu.newMethod2();
</script>
 

posted @ 2009-09-06 16:08 春华-秋实 阅读(211) | 评论 (0)编辑 收藏

仅列出标题