这个问题已经存在了几年.
我正在为一个名为Discuz的论坛引擎编写一些插件,我为自己的项目使用了很多Mootools.当我把Mootools插入这个论坛引擎(discuz)时,事情变得疯狂……
在我去年做了一些调试后,我发现问题是Mootools原型很多核心元素,包括Array,而另一方面,这个论坛引擎使用了一个Forof(i in Array)Loop for’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.......
上次我使用解析器来更改所有for(i in array)循环以通过传递这些原型来添加’if item.hasOwnProperty()’
但我认为这是一个非常糟糕的解决方案,因为你知道,导致更多问题……新版本,错误代码……等等
我想知道是否有解决这个问题的工作?没有触及任何这个论坛引擎的js代码,还使用Mootools?
我知道使用For(.. in)for Array是不好的,但我的问题是我不想触摸这个论坛引擎的javascript代码,我只想要一个解决方案来过载问题
解决方法:
你应该使用你提到的hasOwnProperty().我不确定为什么你认为这会导致更多的问题,实际上使用for(x in y)循环我会倾向于默认使用hasOwnProperty()并且只在特殊情况下省略它.
话虽如此,我不会在数组上使用for(x in y)循环.通常使用(i = 0; i 相关文章
点击查看更多相关文章
标签:javascript,mootools 来源: https://codeday.me/bug/20190704/1379889.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。