`
83026191
  • 浏览: 45335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ExtJS精华函数解析(仅个人见解)

阅读更多

One:    Ext的最先开始的精华函数要算Ext.namespace,它采取的是命名空间的方式.从而可以避免各种变量啊.对象的冲突问题

Two:    Ext的apply采取的是对象继承方式,Ext.apply(o,c,object),既o继承c的所有属性.并且o也拥有object的一切属性

Three   Ext的applyIf采取的对象继承方式,这个跟上面的继承有一点不同,Ext.applyIf(o,c)就是只有当o里的对象不存在时才继承.反之就不继承.

Four:   Ext的extend,这个也是整个Ext的精华所在,所有的对象继承,扩展都是根据Ext.extend的方法而来.本人写的一个htmlEditor也才是看懂了extend方法才搞清楚如何写扩展.
        htmlEditor表情扩展查看地址:http://extjs.com/forum/showthread.php?t=13213    http://extjs.com/learn/Image:Face.jpg.jpg
        Ext.extend(sb, sp, overrides)即sb扩展sp的所有对象,overriders即你想增加的对象或者方法.可以覆盖sp的对象也与方法及属性.



这是本人从ext中扣出来的精华部分,大家完全可以根据这个精华自己去写扩展,写框架.

 

  1. if(typeof(Ext)=="undefined"){
  2.         var Ext={};
  3. }
  4. window["undefined"] = window["undefined"];
  5. Ext.apply = function(o, c, defaults){
  6.     if(defaults){
  7.         Ext.apply(o, defaults);
  8.     }
  9.     if(o && c && typeof c == 'object'){
  10.         for(var p in c){
  11.             o[p] = c[p];
  12.         }
  13.     }
  14.     return o;
  15. };
  16. (function(){
  17.         var ua = navigator.userAgent.toLowerCase();
  18.     var isStrict = document.compatMode == "CSS1Compat",
  19.                 isSafari = (/webkit|khtml/).test(ua),
  20.                 isIE = ua.indexOf("msie") > -1,
  21.         isIE7 = ua.indexOf("msie 7") > -1,
  22.         isGecko = !isSafari && ua.indexOf("gecko") > -1;
  23.         if(isIE && !isIE7){
  24.         try{
  25.             document.execCommand("BackgroundImageCache", false, true);
  26.         }catch(e){}
  27.     }
  28.         Ext.apply(Ext,{
  29.                 emptyFn : function(){},
  30.                 applyIf : function(o, c){
  31.             if(o && c){
  32.                 for(var p in c){
  33.                     if(typeof o[p] == "undefined"){ o[p] = c[p]; }
  34.                 }
  35.             }
  36.             return o;
  37.         },
  38.                 extend : function(){
  39.             var io = function(o){
  40.                 for(var m in o){
  41.                     this[m] = o[m];
  42.                 }
  43.             };
  44.             return function(sb, sp, overrides){
  45.                 if(typeof sp == 'object'){
  46.                     overrides = sp;
  47.                     sp = sb;
  48.                     sb = function(){sp.apply(this, arguments);};
  49.                 }
  50.                 var F = function(){}, sbp, spp = sp.prototype;
  51.                 F.prototype = spp;
  52.                 sbp = sb.prototype = new F();
  53.                 sbp.constructor=sb;
  54.                 sb.superclass=spp;
  55.                 if(spp.constructor == Object.prototype.constructor){
  56.                     spp.constructor=sp;
  57.                 }
  58.                 sb.override = function(o){
  59.                     Ext.override(sb, o);
  60.                 };
  61.                 sbp.override = io;
  62.                 Ext.override(sb, overrides);
  63.                 return sb;
  64.             };
  65.         }(),
  66.                 override : function(origclass, overrides){
  67.             if(overrides){
  68.                 var p = origclass.prototype;
  69.                 for(var method in overrides){
  70.                     p[method] = overrides[method];
  71.                 }
  72.             }
  73.         },
  74.                 namespace : function(){
  75.             var a=arguments, o=null, i, j, d, rt;
  76.             for (i=0; i<a.length; ++i) {
  77.                 d=a[i].split(".");
  78.                 rt = d[0];
  79.                 eval('if (typeof ' + rt + ' == "undefined"){' + rt + ' = {};} o = ' + rt + ';');
  80.                 for (j=1; j<d.length; ++j) {
  81.                     o[d[j]]=o[d[j]] || {};
  82.                     o=o[d[j]];
  83.                 }
  84.             }
  85.         },
  86.                 urlEncode : function(o){
  87.             if(!o){
  88.                 return "";
  89.             }
  90.             var buf = [];
  91.             for(var key in o){
  92.                 var ov = o[key], k = encodeURIComponent(key);
  93.                 var type = typeof ov;
  94.                 if(type == 'undefined'){
  95.                     buf.push(k, "=&");
  96.                 }else if(type != "function" && type != "object"){
  97.                     buf.push(k, "=", encodeURIComponent(ov), "&");
  98.                 }else if(ov instanceof Array){
  99.                     if (ov.length) {
  100.                             for(var i = 0, len = ov.length; i < len; i++) {
  101.                                 buf.push(k, "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
  102.                             }
  103.                         } else {
  104.                             buf.push(k, "=&");
  105.                         }
  106.                 }
  107.             }
  108.             buf.pop();
  109.             return buf.join("");
  110.         },
  111.                 urlDecode : function(string, overwrite){
  112.             if(!string || !string.length){
  113.                 return {};
  114.             }
  115.             var obj = {};
  116.             var pairs = string.split('&');
  117.             var pair, name, value;
  118.             for(var i = 0, len = pairs.length; i < len; i++){
  119.                 pair = pairs[i].split('=');
  120.                 name = decodeURIComponent(pair[0]);
  121.                 value = decodeURIComponent(pair[1]);
  122.                 if(overwrite !== true){
  123.                     if(typeof obj[name] == "undefined"){
  124.                         obj[name] = value;
  125.                     }else if(typeof obj[name] == "string"){
  126.                         obj[name] = [obj[name]];
  127.                         obj[name].push(value);
  128.                     }else{
  129.                         obj[name].push(value);
  130.                     }
  131.                 }else{
  132.                     obj[name] = value;
  133.                 }
  134.             }
  135.             return obj;
  136.         },
  137.                 isIE : isIE,
  138.         isIE7 : isIE7,
  139.         isGecko : isGecko,
  140.                 isStrict:isStrict
  141.         });
  142. })();

  143. Ext.applyIf(String, {
  144.     escape : function(string) {
  145.         return string.replace(/('|\\)/g, "\\$1");
  146.     },

  147.     /**
  148.                 var s = String.leftPad('123', 5, '0');
  149.                 // s now contains the string: '00123'

  150.      */
  151.     leftPad : function (val, size, ch) {
  152.         var result = new String(val);
  153.         if(ch === null || ch === undefined || ch === '') {
  154.             ch = " ";
  155.         }
  156.         while (result.length < size) {
  157.             result = ch + result;
  158.         }
  159.         return result;
  160.     },

  161.     /**
  162.                 var cls = 'my-class', text = 'Some text';
  163.                 var s = String.format('<div class="{0}">{1}</div>', cls, text);
  164.                 // s now contains the string: '<div class="my-class">Some text</div>'

  165.      */
  166.     format : function(format){
  167.         var args = Array.prototype.slice.call(arguments, 1);
  168.         return format.replace(/\{(\d+)\}/g, function(m, i){
  169.             return args[i];
  170.         });
  171.     }
  172. });

  173. Ext.applyIf(Array.prototype, {
  174.     indexOf : function(o){
  175.        for (var i = 0, len = this.length; i < len; i++){
  176.               if(this[i] == o) return i;
  177.        }
  178.            return -1;
  179.     },
  180.     remove : function(o){
  181.        var index = this.indexOf(o);
  182.        if(index != -1){
  183.            this.splice(index, 1);
  184.        }
  185.     }
  186. });
分享到:
评论

相关推荐

    【高创新】基于鲸鱼优化算法WOA-Transformer-LSTM实现故障识别Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    《冯唐成事心法》学习笔记01:逆境来,了怎么办?

    《冯唐成事心法》学习笔记01:逆境来,了怎么办?

    c语言课程设计-职工资源管理系统.7z

    c语言课程设计-职工资源管理系统.7z

    VB个人邮件处理系统(源代码+系统).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    java基于ssm+jsp咖啡馆管理系统源码 带毕业论文

    1、开发环境:ssm框架;内含Mysql数据库;JSP技术 2、需要项目部署的可以私信 3、项目代码都经过严格调试,代码没有任何bug! 4、该资源包括项目的全部源码,下载可以直接使用! 5、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 6、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。

    【高创新】基于雾凇优化算法RIME-Transformer-BiLSTM实现故障识别Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    vb+access大气污染模型(系统+翻译+论文+开题).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    【高创新】基于多元宇宙优化算法MVO-Transformer-BiLSTM实现故障识别Matlab实现.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手

    Linux_运维脚本、GUI安装以及学习文档_ansible-linux.zip

    Linux_运维脚本、GUI安装以及学习文档_ansible-linux

    Go语言介绍(十五)--Go 语言range.docx

    Go语言介绍(十五)--Go 语言range

    Palo Alto Networks PA-220 管理员指导手册

    Palo Alto Networks PA-220 管理员指导手册

    VB+ACCESSVCD租借管理系统(系统+论文+需要分析).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;、本 3项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看ReadmE.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、资 1源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READMe.m文件(如d有),本项目仅用作交流学习参考,请切勿用于商业用途。

    三菱PLC 结构化编程Q系列整条生产线大型项目 两台Q PLC 6台触摸屏 以太网通讯 机器人控制 mes ccd RS232串

    三菱PLC 结构化编程Q系列整条生产线大型项目 两台Q PLC 6台触摸屏 以太网通讯 机器人控制 mes ccd RS232串口通讯 大量fb,fc通用模块 三菱plc大项目程序高级编程 三菱PLC结构化编程一整条生产线程序全套资料 2台Q系列CPU 6台触摸屏 CC-LINK IO 串口通信 扫码枪 8台机器人 拧紧抢系统 CCD 上位机 mes过站管控 三菱gx works2结构化模块化编程,一条产线程序,大型架构,有非常大的参考意义,如果你能学会,势必升级 整条生产线程序包括,15个工位,流水线贯穿 两台三菱Q PLC,以太网通信 CCLINK远程IO站 6台触摸屏主从通信 主站触摸屏用宏指令设计型号管理:修改工艺参数、修改型号名称,并自动同步到从站触摸屏,由主站触摸屏统一换型 触摸屏界面设计优良 项目程序包含大量可重复使用的FB模块: 功能块FB封装有: 系统管理FB 气缸FB(单控双控通用) 机器人控制FB, 串口通信FB, 节拿FB, 产量统计FB, IO监视FB 线体挡停气缸FB(内含数据信息传递) 打螺丝控制FB 产品到达工位顶升控制FB 串口数据整合FC(ST

    4-3_Business_BLUE_2017_01.potx

    微软演示材料

    数据分析-Game-Data-Mining-With-R.zip

    【r语言数据分析案例】 R语言数据分析与挖掘,附数据及代码

    java基于ssm+vue校园二手交易平台系统源码 带毕业论文+PPT

    1、开发环境:ssm框架;内含Mysql数据库;VUE技术 2、需要项目部署的可以私信 3、项目代码都经过严格调试,代码没有任何bug! 4、该资源包括项目的全部源码,下载可以直接使用! 5、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 6、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。

    vb+access学籍管理系统(系统+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    基于变分多谐波对偶模式追踪从噪声信号中提取重复瞬态分量的方法附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    4-3_Consumer_BLUE_2017_01.potx

    微软演示材料

    java基于ssm+vue贫困认定管理平台系统源码 带毕业论文

    1、开发环境:ssm框架;内含Mysql数据库;VUE技术 2、需要项目部署的可以私信 3、项目代码都经过严格调试,代码没有任何bug! 4、该资源包括项目的全部源码,下载可以直接使用! 5、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 6、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。

Global site tag (gtag.js) - Google Analytics