`

Ext.apply

阅读更多

apply方法的签名为“apply( Object obj, Object config, Object defaults ) : Object”,

第一个参数是要拷贝的目标对象,

第二个参数是拷贝的源对象,

第三个参数是可选的,表示给目标对象提供一个默认值。

可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。

Ext源代码如下:

  1. /**  
  2.  * Copies all the properties of config to obj.  
  3.  * @param {Object} obj The receiver of the properties  
  4.  * @param {Object} config The source of the properties  
  5.  * @param {Object} defaults A different object that will also be applied for default values  
  6.  * @return {Object} returns obj  
  7.  * @member Ext apply  
  8.  */   
  9. Ext.apply = function (o, c, defaults){  
  10.     // no "this" reference for friendly out of scope calls   
  11.     if (defaults){  
  12.         Ext.apply(o, defaults);  
  13.     }  
  14.     if (o && c &&  typeof  c ==  'object' ){  
  15.         for ( var  p  in  c){  
  16.             o[p] = c[p];  
  17.         }  
  18.     }  
  19.     return  o;  
  20. };  

另外还有ext.applyif 也是对象克隆,不同的是,克隆的对象并不会覆盖原有属性和方法

具体代码如下:

  1. applyIf :  function (o, c){  
  2.           if (o){  
  3.               for ( var  p  in  c){  
  4.                   if (!Ext.isDefined(o[p])){  
  5.                       o[p] = c[p];  
  6.                   }  
  7.               }  
  8.           }  
  9.           return  o;  
  10.       }, 
分享到:
评论

相关推荐

    ext js 4.1apply && override

    ### Ext JS 4.1中的`Ext.apply`与`Ext.override` #### 一、Ext.apply详解 `Ext.apply`是Ext JS框架中的一个核心方法,主要用于对象的属性合并。此方法能够将一个或多个对象的属性复制到目标对象中,从而实现对象...

    Ext.js核心函数详解.pdf

    1. `Ext.apply(Object obj, Object config, Object defaults)`: 这个函数用于将`config`对象的属性合并到`obj`对象中。如果提供了`defaults`,则首先应用`defaults`,然后是`config`。这样可以确保`defaults`中的...

    Ext.js核心函数详解.docx

    1. `Ext.apply(Object obj, Object config, Object defaults )`: 这个函数用于将`config`对象中的所有属性复制到`obj`对象中。如果提供了`defaults`,则先将`defaults`中的属性复制到`obj`,然后再复制`config`的...

    ext使用--Panel和iframe联合使用时页面高度的解决方法

    Ext.extend(Ext.layout.container.MyIFrameLayout, Ext.layout.container.Fit, { onLayout: function(ct, target) { var iframe = ct.items.first(); if (iframe && iframe.rendered) { var iframeBody = ...

    EXT dojochina Ext类静态方法.rar

    - `Ext.applyIf()`: 类似于`Ext.apply()`,但只有当目标对象没有指定属性时,才会从源对象复制属性。 - `Ext.Array.from()`: 用于将各种类型的输入转换为数组,方便处理集合数据。 4. **静态方法的使用场景**:...

    Ext入门学习.docx

    ExtJS 中的对象追加属性和方法是通过 Ext.apply() 函数来实现的,例如 Ext.apply(Ext.cc.Class1.prototype, {bb:"bb", cc:"cc", dd:function(){alert("ddd")} })。 ExtJS 的优点包括: 1. 可以快速地构建复杂的 ...

    Ext核心源码分析.doc

    首先,Ext提供了一个名为`Ext.apply`的函数,用于对象之间的属性和方法复制。它接受三个参数:目标对象、源对象和默认对象。`Ext.apply`首先检查是否存在默认对象,并将其属性和方法复制到目标对象中。接着,它遍历...

    ExtJs原生批量上传+实时进度

    Ext.apply(me, { items: [{ xtype: 'uploadContainer', uploadParams: me.uploadParams, url: 'SystemUploadController.do?method=uploadFile', border: false }] }); me.callParent(arguments);...

    ExtJSWeb应用程序开发指南(第2版)

    6.3.2 Ext.core.DomHelper.applyStyles() 6.3.3 createTemplate() 6.3.4 insertAfter() 6.3.5 insertBefore() 6.3.6 insertFirst() 6.3.7 insertHtml() 6.3.8 overwrite() 6.4 Ext.core....

    extjs帮助文档pdf版

    - `Ext.apply()`: 将一个对象的属性合并到另一个对象中。 #### 2. Array 类 (P.4) - **概述**:提供了一系列操作数组的方法。 - **常用方法**: - `Ext.Array.contains(array, item)`: 检查数组是否包含特定项。 ...

    extjs帮助文档

    - `Ext.apply(object, properties)`:将一个或多个属性对象合并到目标对象中。 - `Ext.applyIf(object, defaults)`:如果目标对象中的属性不存在,则将其添加。 - `Ext.extend(subClass, superClass[, overrides]...

    ExtJs-API中的一些重要的详解文档

    3. **Ext.applyIf()**: 类似于`Ext.apply()`,但只会将`config`中在`obj`中不存在的属性复制过去,避免覆盖已有的属性。 4. **Ext.addBehaviors()**: 这个方法允许你基于CSS选择器为页面元素添加事件监听器。例如,...

    extjs使用pagingtoolbar时,点击下一页,出现查询结果和查询条件不的解决办法

    `Ext.apply`函数用于合并两个对象的属性,这样在调用`store.load`时,服务器端就能接收到完整的查询条件。 注意,`return true`是必需的,因为`beforechange`事件的返回值决定是否继续执行默认的行为(加载数据)。...

    EXT JS 3.0 Core Class Diagram

    - `Ext.apply()`: 将源对象的属性复制到目标对象上。 - `Ext.applyIf()`: 如果目标对象的属性不存在,则将源对象的属性复制过去。 - `Ext.decode()`: 解码JSON字符串为JavaScript对象。 - `Ext.encode()`: 将...

    extapi

    Ext对象还提供了一些全局函数,如Ext.util.Format用于字符串格式化,Ext.apply用于对象属性的复制,以及Ext.emptyFn作为空函数的引用等。理解Ext类的基本用法对于后续使用其他EXT组件至关重要。 "EXT核心API详解(二...

    EXTJS学习笔记

    **Ext.apply** 及 **Ext.applyIf** 方法是EXTJS框架中用于属性复制的两个重要工具。它们可以帮助开发者轻松地将一个对象的属性复制到另一个对象中,这对于初始化配置或合并选项非常有用。 - **Ext.apply**: - **...

Global site tag (gtag.js) - Google Analytics