文档章节

Ext.apply 详解

蚂蚁搬五岳
 蚂蚁搬五岳
发布于 2015/04/02 17:50
字数 470
阅读 10
收藏 0

apply的用法:

        Ext中apply及applyIf方法的应用

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"。

本文转载自:http://www.cnblogs.com/yin-jingyu/archive/2011/07/30/2122176.html

共有 人打赏支持
蚂蚁搬五岳
粉丝 4
博文 2
码字总数 0
作品 0
西安
项目经理
ExtJS在面向对象所作出的努力

1:支持命名空间 <script type="text/javascript"> //定义一个命名空间 Ext.namespace("Ext.wentao"); //在命名空间上定义一个类 Ext.wentao.helloworld = Ext.emptyFn; //创建一个类的实例 ......

晨曦之光
2012/02/16
0
0
ExtJS知识点(2)

先看代码 1、上面的代码的主要含义是定义了一个新的class:PSI.Sale.WSMainForm,其父类是:Ext.panel.Panel 2、今天的新知识点是:initComponent 如果想给UI中增加新的组件,在initCompone...

PSI
2015/07/08
401
4
使用Ext Form自动绑定Html中的Form元素(转录)

Java代码 //把ext 对象绑定在Html Form元素时的ext属性中 Ext.override(Ext.Component, { initComponent :function(){ this.on('render', function(){ if(this.el) Ext.getDom(this.el).ext......

晨润--菜菜
2014/02/11
0
0
使用Ext Form自动绑定Html中的Form元素

Java代码 //把ext 对象绑定在Html Form元素时的ext属性中 Ext.override(Ext.Component, { initComponent :function(){ this.on('render', function(){ if(this.el) Ext.getDom(this.el).ext......

云轩
2014/02/26
0
0
用ExtJs4的MVC模式构建的项目,Viewport下面的panel怎么加入scrollbar

直接上代码: viewport的代码: Ext.define('DT.view.Viewport', { extend: 'Ext.Viewport', layout: 'border', minWidth: 1300, minHeight: 400, requires: [ 'DT.view.Header', 'DT.view.......

虞峭峭
2013/09/11
341
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 使用parent方式引用时 获取值属性方式默认@

采用官网提供的 引入依赖时,application.properties中的值变量,无法通过${}获取,这是由于Spring Boot 已经将字符方式调整为 <resource.delimiter>@</resource.delimiter>。故如果在,工程中...

翱翔fly
12分钟前
1
0
HTTPS证书验证流程及SSL证书生成步骤【附nginx开启https配置】

------------------------------------------------------------ HTTPS证书验证流程(极简化版) 1.客户端向服务端请求证书(server.crt) 2.服务端下发证书(server.crt) 3.客户端用预制的...

xiaomin0322
13分钟前
1
0
预编译sql语句和参数化sql能有效防止——sql注入攻击——

预编译和参数化处理sql原理类似: 参数化处理sql 是将参数进行了字符串化处理,把参数中的单引号,井号#,等都做了转义处理,进而在执行sql语句时不会被当做sql中的定界符和指定符来执行。 ...

fang_faye
14分钟前
1
0
springboot最全配置解释

​​​​​​​# ----------------------------------------# 核心属性# ----------------------------------------# 文件编码banner.charset= UTF-8# 文件位置banner.locati...

废柴大叔
15分钟前
57
1
(大致了解下)从单机到2000万QPS: 知乎Redis平台发展与演进之路

导读:知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能。本文作者是是该系统的负责人,文...

Ocean_K
22分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部