复制属性,覆盖原有同名属性,ext.applyif不覆盖原有同名属性
var a={x1:100,x2:200,x3:300};
var b={x1:150,x2:250};
Ext.applyif(a,b); //无用,没有多余属性复制
Ext.apply(a,b); // a={x1:150,x2:250,x3:300},b不变
//
var a={x1:100,x2:200,x3:300};
var b={x1:150,x2:250,y1:200};
Ext.applyif(a,b); // a={x1:100,x2:200,x3:300,y1:200},b不变
Ext.apply(a,b); // a={x1:150,x2:250,x3:300,y1:200},b不变
Ext.apply还可以授受三个参数
Ext.apply(a,b,c);//等价于 Ext.applyIf(a,c);Ext.apply(a.b);即先附加c的属性,再拷贝b的属性,注意先applyif,再apply
附上牛叉的源码:
Ext.apply: Ext.apply = function(C, D, B){
if (B) {
Ext.apply(C, B);
}
if (C && D && typeof D == "object") {
for (var A in D) {
C[A] = D[A];
}
}
return C;
};