zoukankan      html  css  js  c++  java
  • ExtJS学习----windowGroup对象--define定义类--config属性--alias别名--备用名 alternate--定义静态statics与inheritableStatics的区别--mixins混合多继承--扩展属性.apply()

    day11
    1. windowGroup对象 操作window组
    ---该实例主要目的针对于特殊需求进行具体的实现,利用
    windowGroup去操作多个窗体同步执行某些任务,这有点类似于
    javascript里的组合模式,原理就是上级负责执行一个动作
    但并不真正去执行,而是分别传递给所有的下级组件去具体执行
    --实例
    Ext.onReady(function(){
    //用windowGroup对象操作多个window窗口
    var wingroup=new Ext.WindowGroup();
    for(var i=1;i<=5;i++){
    var win=Ext.create('Ext.Window',{
    title:'第'+i+'个窗口',
    id:'win_'+i,
    300,
    height:300,
    renderTo:Ext.getBody()
    });
    win.show();
    wingroup.register(win);//把窗体对象注册给ZindexManger
    }
    var btn1=Ext.create('Ext.button.Button',{
    text:'全部隐藏',
    renderTo:Ext.getBody(),
    handler:function(){
    wingroup.hideAll();//隐藏所有被管理起来的window 组件
    }
    });
    var btn2=Ext.create('Ext.button.Button',{
    text:'全部显示',
    renderTo:Ext.getBody(),
    handler:function(){
    wingroup.each(function(cmp){
    cmp.show();
    });
    }
    });
    });


    day12
    基础架构
    1.定义类的方法---define
    Ext.define(calssname,properties,callback);
    --classname:要定义的新类的类名
    --properties:新类的配置对象
    --callback:回调函数,当类创建完成后执行该函数
    --实例--
    Ext.onReady(function(){
    Ext.define('Person',{
    //这是对于这个类的一些配置信息
    //config 属性 就是配置当前类的属性内容,并且会加上get、set方法
    config:{
    name:'张三',
    age:20
    },
    //自己定义的方法
    say:function(){
    alert('我是方法...');
    },
    //给当前定义的类加一个构造器
    constructor:function(config){
    var me=this;
    me.initConfig(config);
    }
    });
    //实例化
    var p=new Person();
    //alert(p.name);
    // alert(p.age);
    alert(p.getName);
    p.say();

    });

    day13--底层继承原理


    day14--

    1.alias:'别名'
    Ext.define("User",{
    config:{
    name:'bjsxt',
    age:10
    },
    //起别名
    alias:'uu',
    //给当前类一个备用名
    alternateClassName:'uuu',
    constructor:function(config){
    var me=this;
    me.initConfig(config);
    }
    });
    var u=Ext.create('uu');
    alert(u.name);
    alert(u.age);


    2.statics (子类不能继承) ----inheritableStatics(子类可以继承)
    给当前类定义静态方法或属性
    Ext.define('Person',{
    config:{
    name:'我是父类'
    },
    statics:{
    static_id:'我是Person的id,不能被子类所继承!!'
    },
    inheritableStatics:{
    inheritableStatics_id:'我是Persion的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);
    alert(User.inheritableStatics_id);

    3.mixins --混合的配置项,可以多继承的配置
    Ext.define("Sing",{
    canSing:function(){
    alert('canSing...');
    }
    });
    Ext.define("Say",{
    canSay:function(){
    alert('canSay');
    }
    });
    Ext.define('User',{
    mixins:{
    sing:"Sing",
    say:"Say"
    }
    });

    var u=Ext.create("User");
    u.canSay();
    u.canSing();


    4.---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 //当前的类被当做一个单例对象

    });

    day15
    1.Ext.apply():就是为对象扩展属性或方法的
    Ext.onReady(function(){
    //Ext.js
    //Ext.apply():如果前一个对象没有的属性,就会添加,有的覆盖更新
    var src={name:'张三',age:20};//源对象
    var config={name:'李四',sex:'男'};//配置对象

    Ext.apply(src,config);//输出:name:'李四' age:20 sex:'男'

    Ext.applyIf(src,config);//如果当前对象存在属性,就不进行copy,如果不存在则copy

    for(var attr in src){
    alert(attr+":"+src[attr]);
    }
    });

    2.//Ext.typeOf和原生的javascript typeOf

  • 相关阅读:
    从0开始搭建Element项目
    Git的上传步骤
    从JVM的角度解析String
    两个字符串相加究竟发生了什么
    简单工厂搭配策略模式
    java返回集合为null还是空集合
    idea常用快捷键
    (7)Stream简介
    (6)函数式接口的简单使用
    (4)函数式接口
  • 原文地址:https://www.cnblogs.com/fdxjava/p/10711894.html
Copyright © 2011-2022 走看看