extjs中apply和applyIf的用法
类别:Web前端 浏览量:7990
时间:2013-11-1 extjs中apply和applyIf的用法
extjs中apply和applyIf的用法apply
方法的签名
apply( Object obj, Object config, Object defaults ) : Object
参数说明
第一个参数是要复制的目标对象;第二个参数是复制的源对象;第三个参数是默认源对象,第三个参数是可选的,意味着如果第三个参数有值,则将第三个参数也复制到目标对象中
apply定义的源代码
Ext.apply = function(object, config, defaults) {
if (defaults) {
Ext.apply(object, defaults);
}
if (object && config && typeof config === 'object') {
var i, j, k;
for (i in config) {//复制所有属性
object[i] = config[i];
}
if (enumerables) {
for (j = enumerables.length; j--;) {
k = enumerables[j];
if (config.hasOwnProperty(k)) {
object[k] = config[k];
}
}
}
}
return object;
};
apply实例
var b1={ p1:"p1 value", p2:"p2 value", f1:function(){alert(this.p2)}};
var b2=new Object();
b2.p2="b2 value";
Ext.apply(b2,b1);
b2.f1();
可以在调用apply方法时,在第三个参数中指定拷贝属性的默认值,比如下面的代码
Ext.apply(b2,b1,{p3:"p3 value"});
alert(b2.p3);
这样会使得b2中包含一个p3的属性,值为"p3 value"。
applyIf
功能跟apply一样,只是不会拷贝那些在目标对象及源对象都存在的属性。
定义的源代码
applyIf: function(object, config) {
var property;
if (object) {
for (property in config) {
if (object[property] === undefined) {//如果object中不含有这个属性,复制属性,否则不复制
object[property] = config[property];
}
}
}
return object;
},
applyIf实例:
比如把前面演示apply方法的代码改成applyIf,如下:
Ext.applyIf(b2,b1);b2.f1();
由于b2中已经存在了p2属性,因此,b2.f1()方法中引用this.p2的时候,得到的是"b2 value",而不是在b1中定义的"p2 value"。
您可能感兴趣
- extjs实现树形下拉框
- ExtJs 中Viewport 的使用
- extjs中treepanel属性和方法
- extjs anchor 锚点布局
- extjs accordion折叠布局
- Extjs updateProgress进度条的应用
- ExtJs中怎么上传文件
- Extjs中文乱码
- extjs column列布局
- extjs中treegrid
- ExtJs中XTemplate使用
- Extjs menu菜单的简单用法
- extjs XTemplate的实例
- extjs 日期控件
- extjs Border边框布局
- ExtJs中getCmp、getDom、Get的区别
- 冬天来了手脚冰凉 真不是因为上辈子你是折翼的天使(冬天来了手脚冰凉)
- 0 1 岁婴儿最强作息指南,照着做养出天使宝宝(01岁婴儿最强作息指南)
- 沪上这16所高校 萌新 礼包开箱 哪一款让你心动(沪上这16所高校萌新)
- 她救了被绑架的他,而这一切竟是一场阴谋...(她救了被绑架的他)
- 冬季养殖这6种阴生植物,方便又好养,你家有么(冬季养殖这6种阴生植物)
- 阴生植物为什么不怕照不到阳光(阴生植物为什么不怕照不到阳光)
热门推荐
- windowsserver如何安装iis(windows Server2012 IIS8.0配置安装完整教程)
- vue3 兄弟组件(vue3如何按需加载第三方组件库详解)
- linux基本命令pwd(在Linux上使用xargs命令的详细教程)
- python装饰器怎么设置(深入了解和应用Python 装饰器 @decorator)
- 在linux系统中切换成其他用户(如何在Linux命令行与其他用户通信)
- extjs xtype的使用
- python中迭代器的作用(Python3.5迭代器与生成器用法实例分析)
- laravel认证系统(Laravel框架Auth用户认证操作实例分析)
- h5怎么在微信公众号发布(H5微信公众号授权的简单实现步骤)
- apache服务器配置伪静态(apache中通过mod_rewrite实现伪静态页面的方法)