• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鼎盛工作室
每天提高一点点,每天积累一点点,每天一点进步,有目标有计划的奋斗一生,每天追逐梦想,软件人生,人生软件。
博客园    首页    新随笔    联系   管理    订阅  订阅
ExtJS在面向对象所作出的努力

1:支持命名空间 

 <script type="text/javascript">
     
//定义一个命名空间
     Ext.namespace("Ext.wentao");
     
//在命名空间上定义一个类
     Ext.wentao.helloworld = Ext.emptyFn;
     
     
//创建一个类的实例
     new Ext.wentao.helloworld();       
 
</script>

 其中

Ext.wentao.helloworld = Ext.emptyFn;

等价于

Ext.wentao.helloworld = function(){};


2:支持类实例属性

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间
    Ext.wentao.Person = Ext.emptyFn; //在命名空间上自定义一个类

    
//为自定义的类 增加一个 name 属性,并赋值
    Ext.apply(Ext.wentao.Person.prototype, {
        name:
"刘文涛"
    }
)
    
    var _person 
= new Ext.wentao.Person();//实例化 自定义类
    alert(_person.name);
    _person.name 
= "张三";//修改类name属性
    alert(_person.name);
</script>


3:支持类实例方法 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间
    Ext.wentao.Person = Ext.emptyFn; //在命名空间上自定义一个类

    
//演示类实例方法
    Ext.apply(Ext.wentao.Person.prototype, {
        name:
"刘文涛",
        sex:
"男",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1}",this.name,this.sex));
        }

    }
)

    var _person 
= new Ext.wentao.Person();//实例化 自定义类
    _person.print();
</script>


4:支持类静态方法 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间
    Ext.wentao.Person = Ext.emptyFn; //在命名空间上自定义一个类

    
//演示类实例方法
    Ext.apply(Ext.wentao.Person.prototype, {
        name:
"刘文涛",
        sex:
"男",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1}",this.name,this.sex));
        }

    }
)
    
    
//演示 类静态方法
    Ext.wentao.Person.print = function(_name,_sex){
        var _person 
= new Ext.wentao.Person();
        _person.name 
= _name;
        _person.sex 
= _sex;
        _person.print(); 
//此处调用类 实例方法,上面print是类 静态方法
    }


    Ext.wentao.Person.print(
"张三","女"); //调用类 静态方法
</script>


5:支持构造方法 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间

    
//构造方法
    Ext.wentao.Person = function(_cfg){
        Ext.apply(
this,_cfg);
    }


    
//演示类实例方法
    Ext.apply(Ext.wentao.Person.prototype, {
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1}",this.name,this.sex));
        }

    }
)
    
    
//演示 类静态方法
    Ext.wentao.Person.print = function(_name,_sex){
        var _person 
= new Ext.wentao.Person({name:_name,sex:_sex});
        _person.print(); 
//此处调用类 实例方法,上面print是类 静态方法
    }


    Ext.wentao.Person.print(
"张三","女"); //调用类 静态方法
</script>


6:支持类继承 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间

    
//*******************父类*********************
    
//构造方法
    Ext.wentao.Person = function(_cfg){
        Ext.apply(
this,_cfg);
    }


    
//演示类实例方法
    Ext.apply(Ext.wentao.Person.prototype, {
        job:
"无",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
        }

    }
)

    
//*******************子类1*********************

    Ext.wentao.Student 
= function(_cfg){
      Ext.apply(
this,_cfg);
    }


   Ext.extend(Ext.wentao.Student,Ext.wentao.Person,
{
       job:
"学生"
   }
)

    var _student 
= new Ext.wentao.Student({name:"张三",sex:"女"});
   _student.print(); 
//调用 父类方法
</script>


7:支持类实例方法重写 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间

    
//*******************父类*********************
    
//构造方法
    Ext.wentao.Person = function(_cfg){
        Ext.apply(
this,_cfg);
    }


    
//演示类实例方法
    Ext.apply(Ext.wentao.Person.prototype, {
        job:
"无",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
        }

    }
)

    
//*******************子类1*********************

    Ext.wentao.Student 
= function(_cfg){
      Ext.apply(
this,_cfg);
    }


    
//重写父类的  实例 方法
   Ext.extend(Ext.wentao.Student,Ext.wentao.Person,{
       job:
"学生",
        print:function()
{
            alert(String.format(
"{0}是一位{1}{2}",this.name,this.sex,this.job));
        }

   }
)

    var _student 
= new Ext.wentao.Student({name:"张三",sex:"女"});
   _student.print(); 
//调用 父类方法
</script>

8:支持命名空间别名 

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间

    Wt 
= Ext.wentao; //命名空间的别名

    
//*******************父类*********************
    
//构造方法
    Wt.Person = function(_cfg){
        Ext.apply(
this,_cfg);
    }


    
//演示类实例方法
    Ext.apply(Wt.Person.prototype, {
        job:
"无",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
        }

    }
)

    
//*******************子类1*********************

    Wt.Student 
= function(_cfg){
      Ext.apply(
this,_cfg);
    }


    
//重写父类的  实例 方法
   Ext.extend(Wt.Student,Ext.wentao.Person,{
       job:
"学生",
        print:function()
{
            alert(String.format(
"{0}是一位{1}{2}",this.name,this.sex,this.job));
        }

   }
)

    var _student 
= new Wt.Student({name:"张q三",sex:"女"});
   _student.print(); 
//调用 父类方法
</script>

9:支持类别名

<script type="text/javascript">
    Ext.namespace(
"Ext.wentao"); //自定义一个命名空间

    Wt 
= Ext.wentao; //命名空间的别名

    
//*******************父类*********************
    
//构造方法
    Wt.Person = function(_cfg){
        Ext.apply(
this,_cfg);
    }


    PN 
= Wt.Person; //类别名

    
//演示类实例方法
    Ext.apply(PN.prototype, {
        job:
"无",
        print:function()
{
            alert(String.format(
"姓名:{0},性别:{1},角色:{2}",this.name,this.sex,this.job));
        }

    }
)

    
//*******************子类1*********************

    Wt.Student 
= function(_cfg){
      Ext.apply(
this,_cfg);
    }


    ST 
= Wt.Student;

    
//重写父类的  实例 方法
   Ext.extend(ST,PN,{
       job:
"学生",
        print:function()
{
            alert(String.format(
"{0}是一位{1}{2}",this.name,this.sex,this.job));
        }

   }
)

    var _student 
= new ST({name:"张q三",sex:"女"});
   _student.print(); 
//调用 父类方法
</script>
posted on 2009-09-14 21:52  鼎盛工作室  阅读(150)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3