Эта проблема существует уже пару лет.
Я пишу несколько плагинов для движка Forum под названием Discuz, я использую множество Mootools для своих собственных проектов. Когда я подключил Mootools к этому форуму Engine (discuz), все сошло с ума ...
После того, как я выполнил некоторую отладку в прошлом году, я обнаружил, что проблема в том, что Mootools создает множество основных элементов, в том числе Array. И, с другой стороны, этот движок форума использует цикл 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.......
В последний раз я использую парсер, чтобы изменить все для цикла (я в массиве), чтобы добавить 'if item.hasOwnProperty ()', чтобы пропустить эти прототипы
Но я думаю, что это очень плохой обходной путь, потому что вы знаете, вызывают больше проблем ... новые версии, исправляют их коды ... и т. Д.
Интересно, есть ли способ обойти эту проблему? не касаясь js-кода этого движка форума, а также использовать Mootools?
Я знаю, что использование For (.. in) для Array - это плохо, но мой вопрос: я не хочу касаться кодов javascript этого движка форума, я просто хочу, чтобы решение перегрузило проблему