Где инициализировать глобальную переменную, к которой будут обращаться многие функции в JavaScript - PullRequest
1 голос
/ 14 апреля 2011

Я очень новичок в JavaScript.Я хочу разработать анимацию холста для Blackberry.Для этого я хотел бы использовать HTML5 и JavaScript.Я хочу создать следующие функции.__функция drawCircle ().Центр круга будет центром холста (размер холста будет размером окна), радиус будет вводиться пользователем.Здесь, где я должен объявить холст, чтобы назначить центр круга?

__ Функция draw (), которая будет выполнять все функции, которые рисуют фигуры.Затем будет вызван в функции init.

__ function init ().Который будет рисовать фигуры с определенным интервалом.

Где я должен объявить:

  • var canvas = document.getElementById()
  • var context = canvas.getContext()
  • canvas.width = windows.innerWidh

?

1 Ответ

3 голосов
/ 14 апреля 2011

Любая переменная javascript, определенная в глобальной области (т.е. не в функции или классе), доступна из остальной части кода.

var testVariable = "test";
function test() {
    console.log(testVariable);        
}
test();

В качестве альтернативы (и это осуждается как плохая практика) объявление переменной без модификатора var вне глобальной области действия переводит ее в глобальную область:

function test() {
    testVariable = "test";
}

test();
console.log(testVariable);

редактирование:

Как верно сказано в комментарии:

Глобальные переменные и функции редко требуется. Использование глобалов может вызвать конфликты именования исходные файлы JavaScript и код причины сломать. По этой причине это хорошая практика для инкапсуляции функциональность в рамках одного глобального Пространство имен ... Самый простой подход заключается в создании один глобальный объект и назначить свойства и методы к этому объекту.

Создание пространства имен:

var MyLib = {}; // global Object cointainer
MyLib.value = 1;
MyLib.increment = function() { MyLib.value++; }
MyLib.show = function() { alert(MyLib.value); }

MyLib.value=6;
MyLib.increment();
MyLib.show(); // alerts 7

Вот описание что такое пространство имен .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...