Ext.apply的用法[通俗易懂]
通俗易懂 用法 apply Ext
2023-06-13 09:12:51 时间
大家好,又见面了,我是你们的朋友全栈君。
Ext 核心 API — Ext.apply 与 Ext.applyIf <script type=”text/javascript”></script><script type=”text/javascript”></script>
Ext中apply及applyIf方法的应用
apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。
apply方法的签名为“apply( Object obj, Object config, Object defaults ) : Object”,该方法包含三个参数,第一个参数是要拷贝的目标对象,第二个参数是拷贝的源对象,第三个参数是可选的,表示给目标对象提供一个默认值。可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。看下面的代码:
<script>
Ext.onReady(function(){
var b1 = {
p1:“p1 value”,
p2:“p2 value”,
f1:function(){
alert(this.p1)},
f2:function(){
alert(this.p2)}
};
var b2 = new Object();
b2.p1 = “b2 value”;
Ext.apply(b2,b1);
b2.f1(); // 这个挺有意思,不仅属性会复制,连b1中的f1方法也可以被复制和使用
// ( 有点费话,因为f1和f2就是以属性的形式生命的 )
b2.f2();
//会使得b2中包含一个p3的属性,值为“p3 value”。
Ext.apply(b2,b1,{
p3:“p3 value”});
alert(b2.p3)
});
</script>
在上面的代码中,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”。
相关文章
- exe免杀c语言,CobaltStrike shellcode免杀捆绑exe思路[通俗易懂]
- Javascript高级程序设计第四版详细测评[通俗易懂]
- java sortedset用法_Java SortedSet headSet()用法及代码示例[通俗易懂]
- python程序的热部署实现[通俗易懂]
- NotePad++ 正则表达式替换 高级用法[通俗易懂]
- Vuex的使用(五)——mapGetters的定义和用法[通俗易懂]
- 利用HashSet给list去重[通俗易懂]
- NET命令的基本用法[通俗易懂]
- C++读写文件操作(fstream、ifstream、ofstream、seekg、seekp、tellg、tellp用法)[通俗易懂]
- 图片加载失败占位符[通俗易懂]
- python与anaconda安装(先安装了python后安装anaconda,基于python已存在的基础上安装anaconda)——逼死强迫症、超详解[通俗易懂]
- 基础案例:TodoMVC[通俗易懂]
- sql中的 IF 条件语句的用法[通俗易懂]
- Spring事务管理[通俗易懂]
- java中static的用法[通俗易懂]
- 关于AjaxPro用法[通俗易懂]
- rand()函数的用法[通俗易懂]
- webstorm插件集合[通俗易懂]
- 有auto为什么还要decltype ?详解decltype的用法[通俗易懂]
- Oracle函数之LAG函数[通俗易懂]
- 论文DepthTrack: Unveiling the Power of RGBD Tracking阅读及代码讲解[通俗易懂]
- Linux中chmod用法[通俗易懂]
- lxml中etree.HTML()和etree.tostring()用法[通俗易懂]
- 回顾各种编码的创新和异同-MEPG2, MPEG4, H.264/AVC以及H.265/HEVC比较[通俗易懂]
- 开源 web ide_强大的开源Web编辑器(IDE)[通俗易懂]
- python lambda表达式举例_Python中lambda表达式[通俗易懂]
- python中if判断语句的用法_Python if判断语句的用法详细介绍[通俗易懂]
- chmod命令用法linux,Linux下chmod命令详细介绍及用法举例[通俗易懂]