【发布时间】:2011-08-12 05:53:09
【问题描述】:
由于我在这里发布的问题Mootools when using For(...in Array) problem 关于某些 javascript 框架将对 Array 对象进行原型制作,而当我插入 javascript 框架时,其他一些代码(论坛引擎)确实使用 For...in Loop 来循环数组进入这些现有的代码,事情就会出错。
//BEFORE
for(key in [1,2,3,4]) console.log(key) //0,1,2,3 keys of the array
//After JS Framework
for(key in [1,2,3,4]) console.log(key) //0,1,2,3,$family,$constructor,pop,push,reverse,shift,sort,splice
鉴于我无法触及包含这些 For..In Array 循环的原始代码,并且我还想使用 javascript 框架(mootools)
我可以通过例如解决这个问题吗? javascript Iterator 的原型??
以某种方式重载 For...In 循环,使我的所有 javascript For...in 循环扫描数组类型并且只返回值而不返回函数?我不知道如何做到这一点,但我想知道这是否可以做到?
【问题讨论】:
-
原码被破解了……真是可惜了。
-
叹息。扩展数组没问题。 perfectionkills.com/…。但是,通过
for ... in构造循环数组(意在用于 OBJECTS)是错误的。它可以工作,因为数组实际上是具有类似数组属性的对象,但您应该酌情使用普通的for循环、Array.each或Object.each。如果您必须使用for .. in,请务必检查hasOwnProperty。
标签: javascript mootools prototype-programming