打开ext的API,如下

找到Class这个选项

将鼠标移到config那里可以看到有以下属性:

 好了,让我们开始进入主题:

    首先,来讲讲如何自定义一个类,在ext中,创建一个类其实与其他语言差不多,只是表达的方式不一样而已,下面是定义一个类的方法

<!--*********************************************-->

    <!--类的创建-->    Ext.define('Father', {        name: 'Unknown',

         constructor: function(name) {            if (name) {                this.name = name;                Ext.Msg.alert('I\'m hungry','I want to eat');            }        },

        eat:function(){           Ext.Msg.alert('I\'m hungry,I want to eat');            }                })        var aaron = Ext.create('Father', 'Aaron');

  <!--*********************************************-->

既然,我们知道了如何定义一个类了,那么我们就要知道他是如何继承的了,用到上图中的extend这个属性 ,方法如下 :

Ext.define('Person', {
    say: function(text) { alert(text); }
});

Ext.define('Developer', {
    extend: 'Person',
    say: function(text) { this.callParent(["print "+text]); }
});

用mixins来实现多继承,如下:

Ext.define('Singer', {             sing: function() {             alert("For he's a jolly good fellow...")            }        });

        Ext.define('Dancer', {             dance: function() {             alert("For he's a jolly Dance...")            }        });

        Ext.define('Musician', {             mixins: {                 tom:'Singer',                 jery:'Dancer'                 },             sing:function(){                 alert(123);                 // this.mixins.canSing.sing.call(this);                 }        })

        var kk=Ext.create('Musician');        kk.sing();        kk.mixins.tom.sing.call(this);        kk.dance();

  用alias来为类设置别名:

    <!--alias的用法,使用alias时注意,名称必须为小写-->
        /*Ext.define('MyApp.CoolPanel', {
            extend:'Ext.panel.Panel',
            alias: ['widget.coolpanel','widget.coolpanel2'],
            hehe:function(){Ext.Msg.alert('hehe','hehe')},
            title: 'Yeah!'
        });*/

//通过Ext.widget()创建实例  
        /*Ext.widget('coolpanel', {
            width : 100,  
            height : 100 ,
            style: {
                        color: '#FFFFFF',
                        backgroundColor:'#000000'
                    },
            renderTo:Ext.getBody()
        });*/
        
        //通过xtype创建
         /*Ext.widget('coolpanel', {
            width : 200,  
            height : 200 ,
            items: [  
            {xtype: 'coolpanel2', html: 'Foo'},  
            {xtype: 'coolpanel2', html: 'Bar'}
            ],
            renderTo:Ext.getBody()
        });*/

<!--alternateClassName的用法,跟alias有点类似-->

/*Ext.define('Developer', {
                    alternateClassName: ['Coder', 'Hacker'],
                    code: function(msg) {
                        alert('Typing... ' + msg);
                    }
            });
            
            var joe = Ext.create('Developer');
            joe.code('stackoverflow');
            
            var rms = Ext.create('Hacker');
            rms.code('hack hack');*/
            
        <!--*********************************************-->

<!--inheritableStatics 定义静态方法,可以被子类继承,类似于static,但static是不可以被子类继承-->
        
        /*Ext.define('Human', {  
            inheritableStatics : {  
            
                eat : function(){  
                    alert('eat');  
                }  
            },  
            say: function(text) { alert(text); }  
        });  
 
        Ext.define('Man', {  
            extend : 'Human'  
        });
        Man.eat(); */
        
        <!--*********************************************-->

<!--*********************************************-->
        
        /*uses 和 requires : 与requires属性类似,都是对某些类进行引用

uses -- 被引用的类可以在该类之后才加载.

requires -- 被引用的类必须在该类之前加载.
        */
            Ext.define('Gird', {  
                uses : ['Boy'],  
                getBoy : function(){  
                    return Ext.create('Boy');  
                },  
                sleep : function(){  
                    alert('sleep');  
                }  
            });  
      
    //对于uses属性,Boy类放在后面是可以的,不会报错  
            Ext.define('Boy', {  
                play : function(){  
                       alert('play');  
                }  
            });  
      
      
    //对于requires属性,Boy类必须在Grid类之前加载,不然会报错  
            Ext.define('Boy', {  
                play : function(){  
                    alert('play');  
                }  
            });  
                  
            Ext.define('Gird', {  
                requires : ['Boy'],  
                getBoy : function(){  
                    return Ext.create('Boy');  
                },  
                sleep : function(){  
                    alert('sleep');  
                }  
            }); 
        <!--*********************************************-->
        
        <!--Cofig的使用,主要是简化构造器中的参数-->
        /*Ext.define('Father', {
         config:{
             name:'LiLi',
             age:0
             },
        
         constructor: function(config) {
            //Ext.Msg.alert('message','My name is '+name+'i\'m'+age+'old');
           this.initConfig(config);//除了这个,什么都不能加进来
            
        },
            
        eat:function(){
           Ext.Msg.alert('I\'m hungry,I want to eat');
            }        
        })
        
        var aaron = Ext.create('Father', {
            name:'huahua',
            age:19
            });
        alert(aaron.getName());*/
        
        
    <!--*********************************************-->

好了,这一节就到这吧,小海我也累了,明天继续把学到的东西与大家一起分享

转载于:https://blog.51cto.com/9197823/1641333

ext 浅谈类的实例相关推荐

  1. C++之浅谈类与对象

    类与对象是C++语言的一个特点,类是对象的抽象,对象是类的实例. 类是抽象的需要占用内存,而对象时实例化的占用内存. 下面举个例子: class Time //定义类 {int hour; //定义数 ...

  2. 关于c语言的教学方法,浅谈C语言实例教学方法

    摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...

  3. c语言教学中案例如何选取,创新教学方法实例 [浅谈C语言实例教学方法]

    摘要:分析C语言程序设计课程的特点:探讨如何在C语言程序设计实验教学中采用科学的实验教学手段,培养学生的学习兴趣,提高学生用C语言解决实际问题的综合能力:对C语言程序设计实验教学提出一些可行的探索方法 ...

  4. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)

    方法解析顺序, Method Resolution Order 从一段代码开始 考虑下面的情况: class A(object): def foo(self): print('A.foo()') cl ...

  5. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  6. 浅谈UML类图中类之间的5种关系

    什么是UML类图? 类图显示了一组类.接口.协作以及他们之间的关系.在UML中问题域最终要被逐步转化,通过类来建模,通过编程语言构建这些类从而实现系统.类加上他们之间的关系就构成了类图,类图中还可以包 ...

  7. 浅谈Java锁,与JUC的常用类,集合安全类,常用辅助类,读写锁,阻塞队列,线程池,ForkJoin,volatile,单例模式不安全,CAS,各种锁

    浅谈JUC的常用类 JUC就是java.util.concurrent-包下的类 回顾多线程 Java默认有几个线程? 2 个 mian.GC Java 真的可以开启线程吗? 开不了,点击源码得知:本 ...

  8. 浅谈Spring IOC和DI及Spring工厂类

    浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...

  9. python类构造方法缺省_浅谈python3 构造函数和析构函数

    要点: 1.魔法方法,被__双下划线所包围 在适当的时候自动被调用 2.在创建一个对象的时候,一定会调用构造函数 3. del析构函数,在del a对象的时候,并一定会调用该析构函数 只有当该对象的引 ...

最新文章

  1. tcp当主动发出syn_(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)
  2. android 开发 分辨率,Android手机应用开发为适应不同分辨率你应该知道的
  3. mc显示服务器生命值,[1.7-1.8]CombatIndicator — 全息显示攻击伤害的数值 让我的世界服务器更有游戏感...
  4. 菜单项onCreateOptionsMenu()和onOptionsItemSelected()的使用
  5. 树状数组 + 位运算 LA 4013 A Sequence of Numbers
  6. spring(5)构建 spring web 应用程序
  7. 备份数据库的expdp语句_银行业Oracle RAC数据库迁移经验分享
  8. 土木工程与计算机专业考研学校排名,2017年土木工程专业考研大学排名
  9. Linear Regression 和 Logistic Regression的不同(对比)
  10. 计算机焊板原理,计算机组成原理电路板焊接(74LS373和74LS138).doc
  11. 电脑退域后登陆不上_退域后加域不成功问题
  12. 第一次梦见这么多的狗
  13. 专访闪能申论凌青:学会申论应试五大力,轻松碾压对手
  14. Yolov5-v6.0模型详解
  15. 汇总阿里云GPU云服务器常见问题解答FAQ
  16. RCTF-2015 TankGame
  17. openai api 接口 列出模型信息
  18. 【视频教程】帝国CMS制作网站系列教程07
  19. 如何创业系列1:创业四要素
  20. Linux Basics

热门文章

  1. Google的“机器人情结”:两次合计36亿美元的人工智能收购
  2. 微信小程序之 SideBar(侧栏分类)
  3. 一个简单的JDBC通用工具
  4. zabbix运行脚本监控ggsci报错
  5. [USACO 4.2] 完美的牛栏
  6. 使用virt-install安装kvm虚拟机时需要的问题
  7. struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
  8. python三酷猫_洛克王国三代酷猫登场 冰水酷猫解析
  9. [USACO13JAN] Cow Lineup (单调队列,尺取法)
  10. [k8s]metricbeat的kubernetes模块kube-metric模块