xml地图|网站地图|网站标签 [设为首页] [加入收藏]

软件资讯

当前位置:美高梅游戏网站 > 软件资讯 > Ext.apply 详解--简单易懂

Ext.apply 详解--简单易懂

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-04 22:18

apply的用法:

ExtJs--13-- Ext.apply(src,apply) 和 Ext.applyIf(src,apply) 两个方法的使用和区别比较

Ext.onReady(function(){

 /*
  * Ext.apply(src,apply) 和 Ext.applyIf(src,apply) 两个方法的使用和区别比较
  */


 //Ext.apply(src,apply)方法用于扩展和修改原有对象的属性或方法
 //定义对象src
 var src = {name:"tom",age:22};
 //定义对象apply
 var apply= {sex:"男",age:33,name:"jack",sal:10000};
 //使用Ext.apply方法对src对象进行属性扩展  或方法扩展
 Ext.apply(src,apply);
 //
 //查看src多有的属性和属性值
 for(var attr in src ){
  document.write(attr +"--"+src[attr])
  document.write("
")
 } 
 //结果如下
//name--jack
//age--33
//sex--男
//sal--10000

 //从源代码和测试结果可以看出:
 //用apply对象中的属性和src对象中属性进行逐个比较,如果在src中不存在该属性就赋值复制到src中,如果有相同属性,就覆盖原有属性的值
 //Ext.apply方法扩展之后的结果就为上面的测试结果了



 //***************分隔线***********************
 document.write("
")

 //Ext.applyIf(src,apply)和Ext.apply(src,apply)的区别在于  
 //如果原对象中存在当前正在比较的属性,那么就不进行复制了,多以当然就不会修改该属性的值了 

// 例如:
 var srcif = {name:"tom",age:22};
 var applyif= {sex:"男",age:33,name:"jack",sal:10000};

 Ext.applyIf(srcif,applyif);
 for(var attr in srcif){
  document.write(attr+"----"+srcif[attr])
  document.write("
")
 }
//结果是
//name----tom
//age----22
//sex----男
//sal----10000


})

Ext.apply(src,apply) 和 Ext.applyIf(src,apply) 两个方法的使用和区别比较 Ext.onReady(function(){/* * Ext.apply(src,apply) 和 Ext.applyIf(src,apply) 两个方...

 

        Ext中apply及applyIf方法的应用

 

apply及applyIf方法都是用于实现把一个对象中的属性应用于另外一个对象中,相当于属性拷贝。

 

不同的是apply将会覆盖目标对象中的属性,而applyIf只拷贝目标对象中没有而源对象中有的属性。

 

apply方法的签名为“apply( Object obj, Object config, Object defaults ) : Object”,

 

该方法包含三个参数,第一个参数是要拷贝的目标对象,第二个参数是拷贝的源对象,第三个参数是可选的,表示给目标对象提供一个默认值。可以简单的理解成把第三个参数(如果有的话)及第二个参数中的属性拷贝给第一个参数对象。看下面的代码:

 

var b1={ p1:"p1 value", p2:"p2 value", f1:function(){alert(this.p2)}};

 

var b2=new Object();

 

b2.p2="b2 value";

 

本文由美高梅游戏网站发布于软件资讯,转载请注明出处:Ext.apply 详解--简单易懂

关键词: