文档章节

Ext.apply 详解

蚂蚁搬五岳
 蚂蚁搬五岳
发布于 2015/04/02 17:50
字数 470
阅读 9
收藏 0
点赞 0
评论 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
博文 1
码字总数 0
作品 0
西安
项目经理
ExtJS知识点(2)

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

PSI ⋅ 2015/07/08 ⋅ 4

ExtJS在面向对象所作出的努力

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

晨曦之光 ⋅ 2012/02/16 ⋅ 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/11 ⋅ 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 ⋅ 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

ExtJS也玩依赖注射(DI)?

ExtJS 组件的 Xtype 大家都是了解的,就是为了方便组件的“延时渲染”而设的。类似地借助字符串标识,我们可不可以应用 Store 的引用上呢?ExtJS 3.0 提供了这方面的支持,允许我们配置组件期...

sp42 ⋅ 2010/04/24 ⋅ 0

ExtJs表单验证的方法总结

一、基本验证方式,使用vtype属性。 1.alpha只能输入字母,无法输入其他(如数字,特殊符号等) 2.alphanum只能输入字母和数字,无法输入其他 3.email验证,要求的格式是master@weilog.net 4...

长平狐 ⋅ 2012/09/06 ⋅ 0

Extjs4---Cannot read property 'addCls' of null 或者 el is null 关于tab关闭后再打开不显示或者报错

做后台管理系统时遇到的问题,关于tab关闭后再打开不显示,或者报错 我在新的tabpanel中加入了一个grid,当我关闭再次打开就会报错Cannot read property 'addCls' of null, 原因是我在定义g...

幕三少 ⋅ 2013/06/20 ⋅ 0

Extjs常用函数

Ext.util.Observable:一个抽象基类,为事件机制的管理提供一个公共接口,如果你希望的类可以有事件,就继承它吧 Ext.apply:如果只传入两个参数,则将C继承D的所有方法属性,如果定义了B则每次...

乔义军 ⋅ 2013/01/14 ⋅ 0

extjs 自定义控件

Ext.define('Ext.ux.YearComboBox', { extend: 'Ext.form.ComboBox', alias: 'widget.yearComboBox', addCode: 1,//显示栏是否显示区域编码 1:显示;0:不显示 initComponent: function(){......

梅_95 ⋅ 2016/08/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Qt中的坑--QTreeWidget添加item 不能显示出来

QTreeWidget* pTree = ui.TreeCheckList; QTreeWidgetItem* item = new QTreeWidgetItem(pTree) ;item->setText ( 0, "test" );pTree->addTopLevelItem (item ); 原因是因为创建一个......

k91191 ⋅ 27分钟前 ⋅ 0

使用Guava的RateLimiter做限流

场景: 1. 在日常生活中,我们肯定收到过不少不少这样的短信,“京东最新优惠卷…”,“天猫送您…”。这种类型的短信是属于推广性质的短信。这种短信一般群发量会到千万级别。然而,要完成这...

wind2012 ⋅ 27分钟前 ⋅ 0

QSlider重新enterEvent

#ifndef DIALOG_H#define DIALOG_H#include <QDialog>namespace Ui {class Dialog;}class Dialog : public QDialog{ Q_OBJECTpublic: explicit Dialog(QW......

xxdd ⋅ 28分钟前 ⋅ 0

生产环境redis备份与恢复

生产环境redis备份与恢复 Tyrant0532 0人评论 1563人阅读 2018-02-01 20:34:10 redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。生产中我们主...

rootliu ⋅ 30分钟前 ⋅ 0

nginx中出现403forbidden错误

nginx “403 Forbidden” 错误 出现这个错误一般是因为以下原因: 网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。 访问禁止目录浏览的目录,例:设置autoindex off后访问目录。 ...

河图再现 ⋅ 30分钟前 ⋅ 0

上海云栖:金融政企行业的CDN最佳实践

摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉宾介绍CDN的解决方案与技术服务体...

猫耳m ⋅ 35分钟前 ⋅ 0

docker 基本操作

docker介绍 Docker项目提供了构建在Linux内核功能之上,协同在一起的的高级工具。其目标是帮助开发和运维人员更容易地跨系统跨主机交付应用程序和他们的依赖。Docker通过Docker容器,一个安全...

haoyuehong ⋅ 36分钟前 ⋅ 0

上海云栖:金融政企行业的CDN最佳实践

摘要: 在刚刚结束的上海云栖大会飞天技术汇分论坛上,阿里云视频云产品架构师罗小飞进行了《阿里云CDN——面向金融政企的CDN最佳实践》主题分享,为上海的嘉宾介绍CDN的解决方案与技术服务体...

阿里云云栖社区 ⋅ 39分钟前 ⋅ 0

安装与配置hadoop

一、CentOS7安装 java8,参考centos7.0 安装java1.8,tomcat 二、安装hadoop 版本V3.03 1、下载并解压hadoop # mkdir /usr/local/app# mkdir /usr/local/app/hadoop# cd /usr/local/app/had......

iturtle ⋅ 40分钟前 ⋅ 0

Idea设置Serializable自动生成

File --> Settings --> Editor --> Inspections ->Serialization issues,在该项下找到“Serializable class without 'serialVersionUID' ”并勾选...

Gmupload ⋅ 43分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部