apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。
不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。
apply方法的签名为“apply( Object obj, Object config, Object defaults ) : Object”,
该方法包含三个参数:
第一个参数是要拷贝的目标对象,
第二个参数是拷贝的源对象,
第三个参数是可选的,表示给目标对象提供一个默认值。
可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。
看下面的代码:
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();
在上面的代码中,Ext.apply(b2,b1)这一语句把b1的属性拷贝到了b2对象中,因此调用b2的f1方法可以弹出"p2 value"的提示信息。尽管b2对象已经包含了p2属性值,但拷贝后该属性值会被覆盖。可以在调用apply方法时,在第三个参数中指定拷贝属性的默认值,比如下面的代码:
Ext.apply(b2,b1,{p3:"p3 value"});
alert(b2.p3);
这样会使得b2中包含一个p3的属性,值为"p3 value"。
applyIf方法的功能跟apply一样,只是不会拷贝那些在目标对象及源对象都存在的属性。比如把前面演示apply方法的代码改成applyIf,
如下:
Ext.applyIf(b2,b1);
b2.f1();
由于b2中已经存在了p2属性,因此,b2.f1()方法中引用this.p2的时候,得到的是"b2 value",而不是在b1中定义的"p2 value"。
分享到:
相关推荐
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
《精通JS脚本之ExtJS框架》由浅入深地讲解了ExtJS在Web开发中的相关技术。本书共分17章,分别介绍了JavaScript的对象编程、JavaScript浏览器对象模型和事件机制、ExtJS的核心类库和组件、ExtJS的事件处理方式、设计...
1. `Ext.onReady(Function fn, Object scope, boolean override)`:这是ExtJS中的一个关键函数,用于在页面DOM完全加载后执行指定的函数。通常,这是初始化应用程序或创建组件的起点。 2. `Ext.get(Mixed el)`:这...
- **Ext.apply() 和 Ext.applyIf()**:这两个函数用于合并对象。`Ext.apply()` 会覆盖目标对象的属性,而 `Ext.applyIf()` 只会在目标对象没有该属性时添加。 #### 四、消息框 - **提示框**:用于显示简单的消息...
在Web开发中,ExtJS是一个强大的JavaScript库,用于构建富客户端应用程序。在处理复杂的用户界面时,Panel和IFrame的组合使用是常见的场景。当Panel包含一个IFrame时,可能会遇到页面高度调整的问题,特别是在动态...
ExtJS 中的对象追加属性和方法是通过 Ext.apply() 函数来实现的,例如 Ext.apply(Ext.cc.Class1.prototype, {bb:"bb", cc:"cc", dd:function(){alert("ddd")} })。 ExtJS 的优点包括: 1. 可以快速地构建复杂的 ...
- **Ext.apply() 和 Ext.applyIf()**: 这两个函数用于合并对象,它们在配置组件时非常有用。 2. **消息框** - **提示框**: 最简单的消息框类型,用于显示简单的提示信息。 - **输入框**: 允许用户输入文本的消息...
**2.5 Ext.apply() 和 Ext.applyIf()** - **Ext.apply()**: 合并多个对象到目标对象中,后者的属性优先。 - **Ext.applyIf()**: 只有当目标对象没有某个属性时才合并。 #### 三、消息框 **3.1 消息框简介** - **...
需要注意的是,`highlight`、`fadeIn`、`fadeOut`等实际上并不直接属于`Ext.Element`,而是`Ext.Fx`类中的方法,它们通过JavaScript的`apply`方法被附加到`Ext.Element`上,以实现动态效果。 在EXTJS中,`Ext....
4.1.2 apply和applyif方法 / 90 4.1.3 不推荐的extend方法 / 92 4.1.4 数据及其类型检测 / 95 4.1.5 其他的基础方法 / 99 4.2 为框架顺利运行提供支持 / 107 4.2.1 平台检测工具:ext.is / 107 4.2.2 当前...
Ext.apply(me, { items: [{ xtype: 'uploadContainer', uploadParams: me.uploadParams, url: 'SystemUploadController.do?method=uploadFile', border: false }] }); me.callParent(arguments);...
- `Ext.applyIf(object, defaults)`:如果目标对象中的属性不存在,则将其添加。 - `Ext.extend(subClass, superClass[, overrides])`:创建一个新的子类,继承自指定的父类。 #### 二、Array类(第4页) - **...
3. **Ext.applyIf()**: 类似于`Ext.apply()`,但只会将`config`中在`obj`中不存在的属性复制过去,避免覆盖已有的属性。 4. **Ext.addBehaviors()**: 这个方法允许你基于CSS选择器为页面元素添加事件监听器。例如,...
2.3 ExtJS中的基本概念 2.4 非常有用的开发工具 2.4.1 开发插件spket 2.4.2 FullSource 2.4.3 MicrosoftScriptDebugger 2.5 ExtJS对原有JavaScript对象的扩展 2.5.1 Ext.Array 2.5.2 Ext.Date 2.5.3 Ext....
- **概述**:`Ext` 是 ExtJS 的核心命名空间,包含了全局的方法和属性。 - **用途**:提供了一个统一的入口来访问 ExtJS 库的功能,如创建组件、管理事件等。 - **常用方法**: - `Ext.create()`: 创建一个组件实例...
在EXTJS 4.0框架中,`Ext.data.Store` 是一个核心组件,用于管理和操作数据。它与服务器端进行通信,通常通过`proxy`配置来实现。在默认情况下,`Ext.data.Store` 使用 HTTP GET 方法来发送请求获取或更新数据。然而...