文档章节

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

没有更多内容

加载失败,请刷新页面

加载更多

在Flutter中嵌入Native组件的解决方案

摘要: 引言 在漫长的从Native向Flutter过渡的混合工程时期,要想平滑地过渡,在Flutter中使用Native中较为完善的控件会是一个很好的选择。本文希望向大家介绍AndroidView的使用方式以及在此...

阿里云官方博客
38分钟前
1
0
aws S3 util demo

package com.example.demo;import com.amazonaws.AmazonClientException;import com.amazonaws.AmazonServiceException;import com.amazonaws.auth.BasicAWSCredentials;import co......

经常把天聊死的胖子
57分钟前
4
0
linux下查看cpu、memo、io、swap性能数据脚本

直接贴脚本: 1、cpu #!/bin/bashCurrentDate=`date -d today '+%Y%m%d'`CurrentTime=`date -d today '+%Y%m%d%H%M'`mytext="$CurrentTime\t`top -b -n 1 | grep Cpu\(s\......

郑加威
今天
5
0
MySQL之——查询重复记录、删除重复记录方法大全

MySQL之——查询重复记录、删除重复记录方法大全

安小乐
今天
2
0
spring容器启动,停止,关闭事件监听-ApplicationEvent

ApplicationEvent ApplicationEvent相当于一个事件,所有自定义事件都需要继承这个抽象类。在Eclipse中Ctrl+Shift+H调用类的层次结构列表,可以看到如下 Application下抽象子类ApplicationCo...

tantexian
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部