Ext中apply及applyIf
来源:互联网 发布:yii2连接oracle数据库 编辑:程序博客网 时间:2024/06/01 08:46
apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。
apply 方法的签名为“apply( Object obj, Object config, Object defaults ) : Object”,该方法包含三个参数,第一个参数是要拷贝的目标对象,第二个参数是拷贝的源对象,第三个参数是可选的,表示给目标对象提供一个默认值。可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。看下面的代码:
PLAIN TEXT
JAVASCRIPT:
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方法时,在第三个参数中指定拷贝属性的默认值,比如下面的代码:
PLAIN TEXT
JAVASCRIPT:
Ext.apply(b2, b1, { p3: "p3 value" });alert(b2.p3);
这样会使得b2中包含一个p3的属性,值为"p3 value"。
applyIf方法的功能跟apply一样,只是不会拷贝那些在目标对象及源对象都存在的属性。比如把前面演示apply方法的代码改成applyIf,如下:
PLAIN TEXT
JAVASCRIPT:
Ext.applyIf(b2, b1);b2.f1();
由于b2中已经存在了p2属性,因此,b2.f1()方法中引用this.p2的时候,得到的是"b2 value",而不是在b1中定义的"p2 value"。
阅读全文
0 0
- Ext中apply及applyIf
- Ext中apply及applyIf
- Ext中apply及applyIf
- Ext中apply及applyIf
- Ext中apply及applyIf方法的应用
- Ext中apply及applyIf方法的应用
- Ext中apply及applyIf方法的应用
- Ext中apply及applyIf方法的应用
- Ext中apply及applyIf方法的应用
- Ext.apply、 Ext.applyIf和Ext.extend
- Ext.apply 与 Ext.applyif的区分
- Ext的apply和applyIf的区别
- EXT的apply和applyif方法
- 【Ext JS4】apply和applyIf函数
- Ext 核心 API -- Ext.apply 与 Ext.applyIf
- Ext 核心 API -- Ext.apply 与 Ext.applyIf
- Ext.apply() 和Ext.applyif()的内部机制问题
- extjs中apply和applyIf的用法
- c#中数组,ArrayList和List 三者的区别
- Question Answer(web-QA + KB-QA + social-QA) research in the world
- hadoop学习之一:mac下hadoop安装
- Android 实现浏览器打开app
- 【详细内容】LVDS转TTL芯片GM8284DD规格书
- Ext中apply及applyIf
- bzoj2592 Symmetry
- Android/Linux Kernel 内存管理-入门笔记
- Java Des加密解密工具类
- Android Studio 无法断点情况之——混淆代码
- Android自定义View之贝塞尔曲线
- SQL表连接图解
- jarsigner 错误: java.security.SignatureException: private key algorithm is not c ompatible with signat
- js实现touch移动触屏滑动事件