请问一个js原型链的问题

请问一个js原型链的问题

终止放荡 发布于 2021-11-26 字数 710 浏览 720 回复 5

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大大指教一下.

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

孤檠 2021-12-01 5 楼

谢谢

瀞厅☆埖开 2021-12-01 4 楼

用for in的话做下hasOwnProperty判断,如果不是就continue避免遍历到原型链上的属性

别再吹冷风 2021-12-01 3 楼

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

私藏温柔 2021-11-30 2 楼

组数和key-value对象分开处理,可以判断的

醉酒的小男人 2021-11-30 1 楼

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

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