首页 > 代码库 > 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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。