复制属性,覆盖原有同名属性,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;
};
Ext.apply与Ext.applyIf详解
本文详细介绍了Ext.apply和Ext.applyIf两个方法的区别及使用场景。Ext.apply用于复制对象属性,并可以覆盖原有属性;而Ext.applyIf仅当目标对象中不存在相应属性时才进行复制。此外,还展示了如何利用这两个方法进行属性复制的具体示例。
411

被折叠的 条评论
为什么被折叠?



