Проблема в том, что вы используете слишком много глобальных переменных, определенных за пределами функции.
Представьте себе такой сценарий: мой аддон, Foo , использует переменную с именем sheep
.
var sheep = 10;
Ваш аддон, Бар , использует переменную, также называемую sheep
:
var sheep = 20;
Когда я обращаюсь к sheep
, какЯ уверен, что твой аддон не изменил его?По той же причине аддоны используют анонимные функции foo = function() {
, потому что они локальные.
Чтобы сделать глобальные переменные более локальными, оберните ваш весь скрипт в анонимную функцию:
(function() {
var sheep = 10;
}());
Теперь вы можете делать все, что пожелаете, с помощью sheep
, и оно будет локальным.Имейте в виду, однако, что вам понадобятся лучшие леса, если вы планируете сделать ваше приложение более сложным.Этот метод не является полностью пуленепробиваемым или масштабируемым ...