首页 > 代码库 > js 框架设计1.3数组化

js 框架设计1.3数组化

这一节从作者哪里学来了[].slice.call([],0,1);这个方法第一个参数可是是字符串可以是数组或其他,第2个是数组截取位置的开始位置,第3个是终止位置。

作者说这个方法不兼容旧版本ie的,HTMLCollection、NodeList不是Object的子类 所以在最后写了一个mass framework里面的方法,具体的代码如下。

当然在我们日常用的jq当中,我可以调用makeArray()的方法,就算没有数组也要返回空数组。

 

插入jq的 makeArray()方法先

var makeArray = function(){     var ret=[];     if(array!=null){         var i=array.length;         if(i==null||typeof array ===‘string‘||jQuery.isFunction(array)||array.setInterval)
ret[0]=array; else
while(i) ret[--i]=array[i] }}

再说mass的区分,一开始就实现w3c方自己的方法和IE手动区分

 1 $.slice = window.dispatchEvent? function(nodes,start,end){ 2     return [].slice.call(nodes,start,end) 3 }:function(nodes,start,end){ 4     var ret=[],n=nodes.length; 5     if(end===void 0 ||typeof end===‘number‘ && isFinite(end)){ 6         start =parseInt(start,10) || 0; 7         if(start<0)start+=n; 8         if(end>n)end=n; 9         if(end<0)end+=n;10         for(var i=start;i<end;i++) ret[i-start]=nodes[i];11     }12      return ret;13 }