Ext中apply及applyIf方法的应用:
apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。
不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。
apply源码:
Ext.apply = function(o, c, defaults){ // no "this" reference for friendly out of scope calls if(defaults){ Ext.apply(o, defaults); } if(o && c && typeof c == 'object'){ for(var p in c){ o[p] = c[p]; } } return o; };
该方法包含三个参数,第一个参数是要拷贝的目标对象,第二个参数是拷贝的源对象,第三个参数是可选的,表示给目标对象提供一个默认值。可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。
applyIf方法的功能跟apply一样,只是不会拷贝那些在目标对象及源对象都存在的属性。
applyIf源码:
applyIf : function(o, c){ if(o){ for(var p in c){ if(Ext.isEmpty(o[p])){ o[p] = c[p]; } } } return o; },
示例代码:
Ext.onReady(function() { var obj1 = { param1 : "p1", param2 : "p2", param3 : function() { alert(this.param2) } }; var obj2 = new Object(); obj2.param2 = "b2"; //applyIf Ext.applyIf(obj2, obj1, {param4 : "p4"}); obj2.param3(); //apply Ext.apply(obj2, obj1, {param4 : "p4"}); obj2.param3(); }, this)
执行结果先弹出b2再弹出p2.
相关推荐
在"Ext.js核心函数详解.pdf"中,我们看到了一些关键的Ext.js函数,这些函数对于理解和使用这个框架至关重要。下面是对这些函数的详细说明: 1. `Ext.apply(Object obj, Object config, Object defaults)`: 这个函数...
EXT核心API详解 1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 ...
3. **Ext.applyIf()**: 类似于`Ext.apply()`,但只会将`config`中在`obj`中不存在的属性复制过去,避免覆盖已有的属性。 4. **Ext.addBehaviors()**: 这个方法允许你基于CSS选择器为页面元素添加事件监听器。例如,...
- `Ext.apply(object, properties)`:将一个或多个属性对象合并到目标对象中。 - `Ext.applyIf(object, defaults)`:如果目标对象中的属性不存在,则将其添加。 - `Ext.extend(subClass, superClass[, overrides]...
文章最后提到了Ext类的一些常用方法,如addBehaviors、apply、applyIf、decode、destroy、each、encode、escapeRe、extend、fly、get、getBody、getCmp等。这些方法提供了丰富的功能,如事件绑定、对象拷贝、JSON...
#### 三、Ext.apply详解 **Ext.apply** 及 **Ext.applyIf** 方法是EXTJS框架中用于属性复制的两个重要工具。它们可以帮助开发者轻松地将一个对象的属性复制到另一个对象中,这对于初始化配置或合并选项非常有用。 ...
3. **apply和applyIf**: `apply`方法用于将一个配置对象的所有属性复制到另一个对象,如果有`defaults`参数,也会将其属性复制过去。`applyIf`与`apply`类似,但只会复制目标对象尚未定义的属性。 4. **decode和...
#### 五、Ext.apply & Ext.applyIf 区别 - **Ext.apply**:将一个对象中的属性复制到另一个对象中。 - `apply(object, config, defaults)` - `object` (Object):目标对象。 - `config` (Object):源对象。 - `...
### Extjs核心API详解 #### 一、Extjs概述与基础API Extjs是一个功能强大的JavaScript框架,用于构建复杂的Web应用程序。它提供了大量的UI组件、数据处理能力以及丰富的API来帮助开发者快速构建交互式界面。 ####...
### Ext JS 2.1 核心 API 详解 #### 1. `addBehaviors(Object obj):void` 此方法用于向指定的 DOM 元素添加事件监听器。它接受一个对象作为参数,其中键为事件选择器(selector),值为对应的事件处理函数。 **...
5. **Ext.apply()和Ext.applyIf()** - `Ext.apply()`用于合并对象,`Ext.applyIf()`则是在目标对象中不存在属性时才进行合并。 #### 四、消息框使用 1. **消息框概述** - 消息框是用于向用户展示信息或请求输入的...