当控件创建成功后添加到panel时,panel的defaults会覆盖控件的属性
//p1中的defaults中的属性会覆盖p中的属性
var p = new Ext.Panel({
bodyStyle: "padding:11px",
width: 80,
height:80,
});
var p1 = new Ext.Panel({
defaults: {
bodyStyle: "padding:10px",
xtype:"textfield",
},
width: 100,
height:100,
items: p,
});
//不会覆盖
var p1 = new Ext.Panel({
defaults: {
bodyStyle: "padding:10px",
xtype:"textfield",
},
width: 100,
height:100,
items: {
bodyStyle: "padding:11px",
width: 80,
height: 80,
xtype:"panel",
}
});
//当创建成功后,会进入第三个if
applyDefaults : function(c){
if(this.defaults){
if(typeof c == 'string'){
c = Ext.ComponentMgr.get(c);
Ext.apply(c, this.defaults);
}else if(!c.events){
Ext.applyIf(c, this.defaults);
}else{
Ext.apply(c, this.defaults);
}
}
return c;
},