2015-12-15 3 views
0

Я пришел в ситуацию, когда мне нужно переименовать переменную окна из-за конфликта, возникающего из какой-либо другой библиотеки, которую нельзя переименовать.Переименование переменной окна

Теперь этот глобальный экземпляр широко используется во всем приложении, например, в тысячах мест. Переименование - это вариант, но он недостаточно надежный, и проверка всех экземпляров - это боль в себе. Есть ли простой способ сделать это?

Что может быть лучшим способом избежать ошибок?

Некоторые из классов обернуты внутри блока определения, и использование IIFE с ними невозможно.

ответ

1

Вы можете обернуть глобальный экземпляр в IIFE, чтобы глобальный экземпляр больше не был глобальным.

Просто что-то вроде

(function() { 
    //Your code here 
}()); 

будет достаточно

+0

на данный момент, я не предпочел бы это. это используется в разных файлах, и это будет непросто сделать это, обертывая все возможные классы этим верхом из requirejs. некоторые классы имеют requirejs, а некоторые - нет. для non-require, это будет работать как шарм – gauravmuk

+0

Если вы используете requirejs, зачем вам нужны переменные окна? Вы можете определить модуль, а затем потребовать его в других модулях. http://requirejs.org/docs/api.html#defsimple – aliasm2k

+0

это какой-то унаследованный код, с которым мне нужно жить, и это было так, и я не могу просто изменить каждую плохую вещь об этом за какое-то время – gauravmuk

Смежные вопросы