`
y1d2y3xyz
  • 浏览: 252535 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

extjs源码分析-016(Ext....)

阅读更多
Ext.apply(Ext, function(){
  var E = Ext, idSeed = 0;
  return {
     emptyFn : function(){},//空函数
      value : function(v, defaultValue, allowBlank){
            return Ext.isEmpty(v, allowBlank) ? defaultValue : v;
     },
     escapeRe : function(s) {//对特殊字符转义
            return s.replace(/([.*+?^${}()|[\]\/\\])/g, "\\$1");
     },
     sequence : function(o, name, fn, scope){//创建队列函数
          o[name] = o[name].createSequence(fn, scope);
      },
      addBehaviors : function(o){//添加时间行为
            if(!Ext.isReady){
                Ext.onReady(function(){
                    Ext.addBehaviors(o);
                });
            } else {
                var cache = {}, // simple cache for applying multiple behaviors to same selector does query multiple times
                    parts,
                    b,
                    s;
                for (b in o) {
                    if ((parts = b.split('@'))[1]) { // for Object prototype breakers
                        s = parts[0];
                        if(!cache[s]){
                            cache[s] = Ext.select(s);
                        }
                        cache[s].on(parts[1], o[b]);
                    }
                }
                cache = null;
            }
        },
         combine : function(){//数据组合,返回组合后的数据
 //把所有参数拼到一个数组中返回 Ext.combine(['a','b'],'c')  返回['a','b','c']
            var as = arguments, l = as.length, r = [];
            for(var i = 0; i < l; i++){
                var a = as[i];
                if(Ext.isArray(a)){
                    r = r.concat(a);
                }else if(a.length !== undefined && !a.substr){
                    r = r.concat(Array.prototype.slice.call(a, 0));
                }else{
                    r.push(a);
                }
            }
            return r;
        },
        copyTo : function(dest, source, names){//把某对象的属性复制给目标对象names为属性名,可以是数组,字符串
           * @param {Object} The destination object.
         * @param {Object} The source object.
         * @param {Array/String} Either an Array of property names, or a comma-delimited list
         * of property names to copy.
         * @return {Object} The modified object.
            if(typeof names == 'string'){
                names = names.split(/[,;\s]/);
            }
            Ext.each(names, function(name){
                if(source.hasOwnProperty(name)){
                    dest[name] = source[name];
                }
            }, this);
            return dest;
        },
        destroy : function(){//清除对象属性,DOM节点
            Ext.each(arguments, function(arg){
                if(arg){
                    if(Ext.isArray(arg)){
                        this.destroy.apply(this, arg);
                    }else if(Ext.isFunction(arg.destroy)){
                        arg.destroy();
                    }else if(arg.dom){
                        arg.remove();
                    }    
                }
            }, this);
        },
         destroyMembers : function(o, arg1, arg2, etc){
            for(var i = 1, a = arguments, len = a.length; i < len; i++) {
                Ext.destroy(o[a[i]]);
                delete o[a[i]];
            }
        },
        clean : function(arr){
            var ret = [];
            Ext.each(arr, function(v){
                if(!!v){
                    ret.push(v);
                }
            });
            return ret;
        },
        unique : function(arr){
            var ret = [],
                collect = {};

            Ext.each(arr, function(v) {
                if(!collect[v]){
                    ret.push(v);
                }
                collect[v] = true;
            });
            return ret;
        },
        getCmp : function(id){//获取组建对象
            return Ext.ComponentMgr.get(id);
        },
        type : function(o){
            if(o === undefined || o === null){
                return false;
            }
            if(o.htmlElement){
                return 'element';
            }
            var t = typeof o;
            if(t == 'object' && o.nodeName) {
                switch(o.nodeType) {
                    case 1: return 'element';
                    case 3: return (/\S/).test(o.nodeValue) ? 'textnode' : 'whitespace';
                }
            }
            if(t == 'object' || t == 'function') {
                switch(o.constructor) {
                    case Array: return 'array';
                    case RegExp: return 'regexp';
                    case Date: return 'date';
                }
                if(typeof o.length == 'number' && typeof o.item == 'function') {
                    return 'nodelist';
                }
            }
            return t;
        },

        intercept : function(o, name, fn, scope){
            o[name] = o[name].createInterceptor(fn, scope);
        },

        // internal
        callback : function(cb, scope, args, delay){
            if(Ext.isFunction(cb)){
                if(delay){
                    cb.defer(delay, scope, args || []);
                }else{
                    cb.apply(scope, args || []);
                }
            }
        }
  }
})
分享到:
评论

相关推荐

    ExtJs入门实例(内含N个实例源码)

    ExtJS入门实例、包含各种详细代码,非常适合初学者学习

    ExtJS源码分析与开发实例宝典.part10(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part07(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    Ext JS源码分析与开发实例宝典光盘源码

    Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发...

    ExtJS源码分析与开发实例宝典

    资源名称:Ext JS源码分析与开发实例宝典内容简介:本书全面系统地剖析了ExtJS 3.0的架构设计原理。通过对源码的“抽丝剥茧”,读者可以掌握Ext JS架构的精妙,从原理层面用活Ext JS。此外,本书还提出了大量的解决...

    Ext+JS源码分析与开发实例宝典.part4.rar

    Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。所有下载链接去这里找http://stephegn.download.csdn.net/ 全面剖析Ext JS 3.0的架构原理 透彻体悟...

    ExtJS源码分析与开发实例宝典.part01(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part11(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part12(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part09(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part08(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part04(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part06(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part05(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part02(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    ExtJS源码分析与开发实例宝典.part03(带书签)

    Ext+JS源码分析与开发实例宝典 是extjs3.0的学习书 书得内容很不错。深入解析extjs 资源是pdf文档. 本人自己还做了pdf的完整书签目录,便于方便和阅读. 文档比较大,一共压缩成12卷.需12卷全部下载完。 就第一个...

    Ext+JS源码分析与开发实例宝典.part2.rar

    Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。所有下载链接去这里找http://stephegn.download.csdn.net/ 全面剖析Ext JS 3.0的架构原理 透彻体悟...

    ExtJs学习资料

    包括Ext_JS高级程序设计(PDF版).pdf、Ext_JS源码分析与实例宝典.pdf、ExtJS入门-详细教程.pdf、ExtJS实用教程.pdf、新版ext教程.pdf以及ext-3.1.1.rar。是学习ExtJs3的非常全面的学习资料。

    Ext+JS源码分析与开发实例宝典.part6.rar

    Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。所有下载链接去这里找http://stephegn.download.csdn.net/ 全面剖析Ext JS 3.0的架构原理 透彻体悟...

    Ext+JS源码分析与开发实例宝典.part5.rar

    Ext+JS源码分析与开发实例宝典.pdf,清晰完整版。彭仁夔 编著,2010.1 。该书共6个part,全部下载才能RAR解压。所有下载链接去这里找http://stephegn.download.csdn.net/ 全面剖析Ext JS 3.0的架构原理 透彻体悟...

Global site tag (gtag.js) - Google Analytics