這個問題已經存在了幾年了。使用For(...在陣列中)時的Mootools問題
我正在爲論壇引擎編寫一些名爲Discuz的插件,我在自己的項目中使用了很多Mootools。當我將Mootools插入這個論壇引擎(discuz)的時候,事情變得很瘋狂......
去年我做了一些調試之後,發現問題是Mootools原型化了很多核心元素,包括Array,以及on另一方面,這個論壇引擎在數組中使用了一個For(i in Array)循環。因爲
for(i in [1,2,3,4,5]) console.log(i); //0,1,2,3,4 the keys in this array
**WITH MOOTOOLS
for(i in [1,2,3,4,5]) console.log(i);
//OUTPUT 0,1,2,3,4,$family,$constructor,pop,push,reverse,shift,sort,splice.......
我最後一次使用解析器來改變所有(我在陣列)循環增加,這將造成一定的問題,「如果item.hasOwnProperty()」,由傳遞這些原型 但我認爲這是一個非常糟糕的變通原因你知道,造成更多的問題......新版本的bug他們的代碼...等
我不知道是否有周圍的工作解決售後服務這個問題?沒有觸及任何這個論壇引擎的js代碼,也使用Mootools?
我知道,使用(..中)數組是壞的,但我的問題是,我不想碰這個論壇引擎的JavaScript代碼,我只是想解決過載問題
我只是想確保你知道'for-in'語句非常不鼓勵**遍歷數組對象,它的目的是**枚舉**對象的屬性,如果你使用簡單的順序循環,你會遇到更少的問題(它們也比'for-in'快)。另請參閱:http://stackoverflow.com/questions/500504/javascript-for-in-with-arrays http://stackoverflow.com/questions/3010840/loop-through-array-in-javascript/ – CMS
可能的重複[Javascript原型For ...在迭代器中?](http://stackoverflow.com/questions/7036097/javascript-prototype-for-in-iterators) –