Ext.apply的用法[通俗易懂]

Ext.apply的用法[通俗易懂]Ext核心API–Ext.apply与Ext.applyIf<scripttype="text/javascript"></script><scripttype="text/javascript"></script>Ext中apply及applyIf方法的应用        apply及applyI…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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方法也可以被复制和使用

// ( 有点费话,因为f1f2就是以属性的形式生命的 )

          

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164718.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言strcat()函数:连接字符串

    C语言strcat()函数:连接字符串

    2021年9月11日
    79
  • CAP理论中, P(partition tolerance, 分区容错性)的合理解释

    CAP理论中, P(partition tolerance, 分区容错性)的合理解释在CAP理论中,对partitiontolerance分区容错性的解释一般指的是分布式网络中部分网络不可用时,系统依然正常对外提供服务,而传统的系统设计中往往将这个放在最后一位.这篇文章对这个此进行了分析和重新定义,并说明了在不同规模分布式系统中的重要性.The‘CAP’theoremisahottopicinthedesignofdistributeddat…

    2022年7月25日
    21
  • SP网站建立后.有两处地方需要首先修改

    SP网站建立后.有两处地方需要首先修改1.SP管理中心—-系统设置—-配置备用访问映射内部URL区域区域的公用URL http://kms:504 默认http://kms:504 http://localhost:504 Intranethttp://localhost:504 http://192.168.1.109:504 Internethttp://192.168.1.109:5

    2022年6月17日
    31
  • 生成Android App签名(为APK签名)

    生成Android App签名(为APK签名)

    2021年8月19日
    66
  • Algorithms 普林斯顿算法课程笔记(一)

    Algorithms 普林斯顿算法课程笔记(一)本节将从动态连接性算法(并查集问题的模型)入手,引入算法分析和设计的整体思路和优化方法,为整个课程的引子部分。主要内容包括QuickFind和Quickunion算法,以及这些算法的改进。动态连接性对于连接做如下定义:自反:p连接于自身 对称:若p连接于q,则q连接于p 传递:若p连接q,q连接r那么p连接r我们的算法需要满足上述关于连接的定义。另外,引出了另一个概念…

    2022年9月1日
    6
  • 隐形数字水印_Android 实现图片水印与隐形数字水印

    隐形数字水印_Android 实现图片水印与隐形数字水印在使用知乎,微博的时候,我们经常可以看到自己上传的图片被加上了文字水印,在实际的应用开发过程中,很多客户端都需要开发者自己编写Canvs绘制图形水印的方法,今天我想在这里介绍一个轻量级的开源Android图片水印框架来避免开发过程中编写复杂的绘图代码:AndroidWM,并且剖析它的实现过程和特色用法。水印这个框架最大程度上简化了图片水印绘制的问题,暴露了灵活的接口给用户使用。在绘制水印的…

    2025年5月29日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号