ExtJs006类别名、备用名

Ext.onReady(function () {
    //Ext.define 其他配置项

   
    //别名、备用名
    Ext.define("User", {
        config: {
            name: 'hhh',
            age:10
        },
        alias: 'uu',//起别名    底层代码在Ext.ClassManger
        alternateClassName: 'uuu',//备用名字 和alias差不多    //给当前类一个备用名 底层代码在Ext.ClassManger 
        constructor: function (config) { //构造器
            var me = this;
            me.initConfig(config); //初始化配置
        }
        
    });

    //var u = Ext.create('User');
     var u1 = Ext.create('uuu'); //通过别名一样可以创建User类
    //var u2 = Ext.create('uu');


    alert(u1.getName()); //注意:这里的调用方式
    alert(u1.getAge());

 
   
    Ext.define('My.sample.Person', {
        config: {
            name: 'Mr. Unknown',
            age: 0,
            gender: 'Male'
        },
        alias: 'uu',//起别名    底层代码在Ext.ClassManger
        alternateClassName: 'uuu',    //给当前类一个备用名 底层代码在Ext.ClassManger
        hhh:'aaa',
        constructor: function (config) {
            this.initConfig(config);

            return this;
        } 
    });
    var u = Ext.create('My.sample.Person');
    var u1 = Ext.create('uu');
    var u2 = Ext.create('uuu');
    alert(u2.config.name);
    alert(u2.config.age);
    alert(u2.hhh);
    */


   

     
    //statics(子类不能继承) inheritableStatics(子类可以继承) 给当前类定义静态方法或属性
    /*
    Ext.define('Person', {
        config: {
            name:'父类'
        },
        statics: {    //静态的方法或属性
            static_id: '我是Person的id,不能被子类所继承!!'
        },
        inheritableStatics: {    //静态的方法或属性
            inheritableStatics_id: '我是Person的id,我可以被子类继承!!'
        },
        constructor: function (config) {
            var me = this;
            me.initConfig(config);
        }
    });

    //一定注意:!!!!!//实例对象是无法使用静态属性或方法的
    //var p = Ext.create('Person');
    //alert(p.static_id);    
    //用类名去使用静态属性:!!!!
    //    alert(Person.static_id);
    //    alert(Person.inheritableStatics_id);

    Ext.define('User', {
        extend: 'Person',
        config: {
            age: 20
        }
    });
    alert(User.static_id);  //undefined
    alert(User.inheritableStatics_id);
    
    */
    /*
 
    //mixins 混合的配置项,可以多继承的配置
    Ext.define("Sing", { 
        canSing: function () {
            alert('canSing方法,自定义');
        }
    });
    Ext.define("Say", {
        canSay: function () {
            alert('canSay,,,');
        }
    });

    Ext.define('User', {
        mixins: {
            sing: "Sing", //相当于继承Sing类,可以通过User调用Sing里面的方法
            say:"Say"
        }
    });

    var u = Ext.create("User"); //注意大小写
    u.canSay();
    u.canSing();
     */

     
    //^_^伪代码说明: requires 和 uses 以及  singleton
    /**
    Ext.define('MyComponent',{
        //可能需要Ext或者是其他的类做支持
        //requires加载需要的类时机是:当前类初始化之前被加载
        //requires:['Ext.window.Window','Ext.button.Button'] 
        //uses加载需要的类时机是:当前类初始化之后被加载
        //uses:['Ext.form.Panel','Ext.grid.Panel']
        //singleton:true    //当前的类就被当做一个单例对象
    });
    */

  



})

 

posted @ 2016-10-25 18:14  01234  阅读(195)  评论(0编辑  收藏  举报