lindping
lindping
  • 发布:2016-08-11 12:38
  • 更新:2016-08-11 12:38
  • 阅读:2943

picker插件里遍历的写法问题

分类:MUI

mui.picker.min.js里面用了大量 for(var i in array)的写法,如果自定义了Array的属性扩展,就会引起问题。
比如我在自定义了Array的一个方法
Array.prototype.contains = function(elem) {
for (var i = 0; i < this.length; i++) {
if (this[i] == elem) {
return true;
}
}
return false;
}

使用 for(var i in array)就会遍历到contains这个方法 ,导致程序出错。错误信息:
getSelectedItem is not a function
我修改
for(var i in array) 为
for(var i=0; i< array.length;i++)
后运行正常

1 关注 分享
thinknow

要回复文章请先登录注册

lsvih

lsvih

是有这个问题,只要对数组原型进行了拓展,这些代码就会引起报错。我认为这块是官方的不谨慎。只能自己改代码,要么把原型拓展写成函数,要么把for in 加上hasOwnProperty,要么还是用for var
2016-08-11 14:09