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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小猪的Android入门之路 day 1

    小猪的Android入门之路 day 1

    2021年12月10日
    40
  • 2017年Android SDK下载安装及配置教程

    2017年Android SDK下载安装及配置教程首先声明:Unity版本5.6.3f1    最近试着在Unity中利用高通做AR开发时,发布项目文件需要发布到Android平台,遇到一些问题,看了网上的一些资料,踩了一些坑,现在总结出来,希望有相同的开发者遇到时可以规避。    若有任何问题可留言评论,我看到会第一时间解答。Android开发环境搭建分为以下四步:第一步、安装JDK;第

    2022年7月19日
    13
  • hashmap遍历keyset_怎么遍历一个map

    hashmap遍历keyset_怎么遍历一个map四种方式遍历hashmap,面试官都馋哭了

    2022年9月8日
    0
  • Java String.replace()方法

    Java String.replace()方法用法实例教程,返回一个新的字符串,用newChar替换此字符串中出现的所有oldChar声明以下是java.lang.String.replace()方法的声明public String replace(char oldChar, char newChar)参数oldChar — 这是旧的字符.newChar — 这是新

    2022年3月10日
    150
  • python中astype用法_python里的astype是什么意思?

    python中astype用法_python里的astype是什么意思?展开全部astype是实现2113变量类型转换,例如astype(type):returnsacopyofthearrayconvertedtothespecifiedtype.a=a.astype(‘Float64’)b=b.astype(‘Int32’)Python中与数据5261类型4102相关函数及属性1653有如下三个:type/dtype/astypetyp…

    2022年6月9日
    203
  • 16位汇编指令_汇编语言指令表

    16位汇编指令_汇编语言指令表汇编语言特点:与机器相关,执行效率高,调试复杂汇编语言优缺点:汇编语言和高级语言混合编写,互补数据表示类型:二进制B,八进制Q,十进制D,十六进制HBCD编码:用二进制来表示十进制数CPU资源和存储器:通用寄存器,标志寄存器,指令寄存器EAX,累加ECX,循环计数EDX,数据寄存器EBX,基址寄存器ESP,栈顶EBP,栈底ESI,扩展源指针EDI,扩

    2022年10月21日
    0

发表回复

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

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