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

原文地址:https://www.cnblogs.com/fdxjava/p/10711894.html