【发布时间】:2017-04-19 14:21:59
【问题描述】:
Mootools 覆盖了 Array 原型,问题是这个原型和我有一个使用 for(i in someArray) 迭代的外部 .js(我无法手动修改的库)并且它抛出异常,因为现在是 Array有更多的属性。关于如何克服这个问题的任何想法?我正在考虑从 Mootools 库本身的数组中删除这些属性,但这似乎并不容易。
【问题讨论】:
-
如果你可以修改你正在使用的库,你应该在这些for循环中添加
if (!someArray.hasOwnProperty(i)) continue;。见这里:stackoverflow.com/q/2040042/995958 -
for(i in someArray) if (someArray.hasOwnProperty(i)) {/* your code */} -
我知道这是一种不好的做法,但这是一个来自内置 SharePoint 的 javaScript 文件,它在 sp.ribbon.js 上定义得更具体。微软有人提出以这种方式迭代数组的想法。
标签: javascript arrays prototypejs mootools