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 column列布局
- Extjs updateProgress进度条的应用
- Extjs中FieldSet的收缩和展开
- extjs radiogroup赋值和取值
- Extjs中文乱码
- extjs多选下拉框
- extjs xtype的使用
- extjs XTemplate的实例
- extjs table布局
- extjs中treepanel例子
- extjs tabPanel的用法
- ExtJs常用代码片段
- extjs中treegrid
- ExtJs中Store的种类
- extjs实现树形下拉框
- extjs 日期控件
- 每周一首古诗 《绝句》(每周一首古诗绝句)
- 蓝色代表什么(蓝色代表什么性格的人)
- 红色代表什么(红色代表什么情感和含义)
- 南宋志南和尚绝句 杨柳风似庙中来(南宋志南和尚绝句)
- 今天要穿什么颜色(今天要穿什么颜色的衣服最吉利)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
热门推荐
- ASP.NET cache缓存的用法
- dataset详解(DATASET 与 DATAREADER对象有什么区别)
- js限制用户(如何用JS追踪用户)
- python出现modify怎么办(解决Python找不到ssl模块问题 No module named _ssl的方法)
- sqlserver模糊查询使用定义的字段(SQL Server模糊查询的常见方法总结)
- SQL语句中单引号
- JS匿名函数的用法
- dedecms更新后设置不显示(dedecms中tags页面显示错位的解决方法)
- vue.js入门教学第15讲(Vue.js 使用AntV X6的示例步骤)
- javascript作用域实例(JavaScript defineProperty如何实现属性劫持)