как сделать грамотно?
Всем привет!
В своих поделках у меня частенько проскакивает код типа:
//это типа глобальная переменная
var counter=0;
function DoSomeWork(){
/*...что то еще*/
if(count == A)
{
//как то изменяем глобальную переменную:
counter ++;
//что то делаем еще:
/*
...some code
*/
}
}
В общем состояние храниться в глобальной переменной. Маразмом я таким знаимаюсь, например, если пользователь не должен иметь возможность выделить больше трех checkbox`офф в форме. Я считаю что это некрасиво, но ничего умнее не придумал. Как избавиться от глобальной переменной? Мне кажется тут должны пригодится замыкания, но что-то мне не хватило мозгу понять как их припилить к этому. |
Лучше перейти к объектно-ориентированности. Но если приложение небольшое, то можно и замыкания. Как вариант
var doSomeWork = (function() {
var counter = 0;
return function() {
// код функции
}
})();
|
DoSomeWork.counter = 0;
функция тоже объект. |
Цитата:
|
Цитата:
counter относиться к функции, так почему бы ему не быть её свойством? не понимаю вашего упрёка. |
Цитата:
Вариант с замыканием мне кажется более элегантным. Аналогичный пример можно привести с добавлением в DOM-элемент своих свойств. Я предпочитаю обходиться без этого. Тем более что осел преобразует их в атрибуты и если в дальнейшем мы будет их обрабатывать, могут возникнуть проблемы. |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
DoSomeWork.vars = {};
DoSomeWork.vars.counter = 0;
|
Цитата:
|
| Часовой пояс GMT +3, время: 02:18. |