请问一个js原型链的问题

ffvsnn520 发布于 2015/06/04 00:14
阅读 263
收藏 0

ie6下没有indexof方法.

所以添加if(!Array.prototype.indexOf){
    Array.prototype.indexOf = function(val){
       var value = this;
       for(var i =0; i < value.length; i++){
          if(value[i] == val) return i;
       }
       return -1;
    };
}

但是循环数组的时候发现会多出一个undefined的数组 。答应发现是因为把indeof这个原型链答应出来了.所以出现了问题.目前只是判断是否数组为object来过滤.感觉这样并不是最正确的。很困惑,所以请各位js大大指教一下.



加载中
0
f
ffvsnn520

引用来自“柳倾城”的评论

你用的for(.. in ..)循环吧,数组请使用for(var i =0; i<len; i++)这样的

谢谢啊..那for(..in..)有办法避免这种情况吗?  必须很多时候都会有key值.直接用for..in会方便很多.

柳倾城
柳倾城
组数和key-value对象分开处理,可以判断的
0
柳倾城
柳倾城
你用的for(.. in ..)循环吧,数组请使用for(var i =0; i<len; i++)这样的
0
淘淘我的小宝宝
淘淘我的小宝宝
用for in的话做下hasOwnProperty判断,如果不是就continue避免遍历到原型链上的属性
f
ffvsnn520
谢谢
返回顶部
顶部