大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Ext 核心 API — Ext.apply 与 Ext.applyIf <script type=”text/javascript”></script><script type=”text/javascript”></script>
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(){
f2:function(){ };
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,{
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”。 |
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/164718.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...