как сделать грамотно?
Всем привет!
В своих поделках у меня частенько проскакивает код типа: //это типа глобальная переменная 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, время: 15:16. |