如何在"for..in"循环中从处理中排除添加到Array方法?(JavaScript的)

zxc*_*cat 2 javascript opera prototypejs

我添加了一些有用的助手Array(比如toSource()Opera).现在for..in返回具有普通属性的函数.

我现在正在使用for..in,因为代码更易于阅读.它是js的原生功能,因此必须更快.

但是在循环中添加类型检查可以更容易地使用经典for(;;).

有没有什么方法可以避免for..in枚举函数?

跨浏览器工作不是很必要(必须在Opera中工作),但速度很重要.

谢谢.


编辑:
有没有能力避免for..in任何对象的枚举函数或自定义属性?

jve*_*ema 5

永远不应该使用for..in循环来迭代数组元素.for..in设计用于迭代属性,并且只应该用于它,正如您刚刚描述的那样.许多库修改了数组,日期等原型,所以你不应该只依赖于数组元素.使用for(;;)方法,保证做你想要的.它并不比for..in循环快,因为它也是javascript的原生.

有关更多信息,请在prototype.js库中阅读.