首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

[ExtJS3.2源码每日一小时](2)ext-base.js做了什么(之四)

2012-10-31 
[ExtJS3.2源码每天一小时](2)ext-base.js做了什么(之四)//url追加方法,可传入url地址与拼接的keyvalue串。

[ExtJS3.2源码每天一小时](2)ext-base.js做了什么(之四)

//url追加方法,可传入url地址与拼接的key=value串。不推荐使用,因为每次都要判断url中是否有“?”,效率偏低urlAppend : function(url, s){    if(!Ext.isEmpty(s)){        return url + (url.indexOf('?') === -1 ? '?' : '&') + s;    }    return url;}


//截取数组元素的方法,在ie下与其他浏览器的实现有所区别 a-原数组 i-起始位置 j-终止位置(这是一个自运行函数,当ext-base加载完后,就确定了是调用第一个function还是第二个function了) toArray : function(){             return isIE ?                 function(a, i, j, res){                     res = [];                     for(var x = 0, len = a.length; x < len; x++) {                         res.push(a[x]);                     }                     return res.slice(i || 0, j || res.length);                 } :                 function(a, i, j){                     return Array.prototype.slice.call(a, i || 0, j || a.length);                 }}()



//判断对象是否可迭代遍历,一般是指数组isIterable : function(v){             //check for array or arguments            //检验v是数组或者arguments对象            if(Ext.isArray(v) || v.callee){                return true;            }            //check for node list type            //调用对象的toString之后验证是否是集合或者节点集对象            if(/NodeList|HTMLCollection/.test(toString.call(v))){                return true;            }            //NodeList has an item and length property            //IXMLDOMNodeList has nextNode method, needs to be checked first.            return ((typeof v.nextNode != 'undefined' || v.item) && Ext.isNumber(v.length));        }

热点排行