Archive

Posts Tagged ‘javascript’

Подсказка: private-переменные в Javascript

February 24th, 2010 1 comment

Это перевод статьи Quick Tip: Private Variables in JavaScript.

Подсказка: private-переменные в Javascript

Из-за зависимости JavaScript от глобальных переменных, можно легко забыть, что создание часных переменных (private variables) может быть реализовано так же просто, как и замыкания. За несколько минут, я продемонстрирую две основные техники, предоставляющие часные переменные и медоды в ваших проектах. Read more…

Паттерн Registry в Javascript

October 19th, 2009 3 comments

Мне почему-то понадобилось реализовать паттерн проектирования Registry на Javascript.  Как сделать это на PHP для меня не представляло сложности, а вот понять объектную модель Javascript у меня никогда не получалось. Самое сложное для меня остаётся понять, почему вышло реализовать Singleton.

Код пишу сюда, потому что могу и забыть как делается ;)

<script type="text/javascript">
 function Registry(){
   if(!this.instance){
     /* нет пока объекта
         создадим
     */
       function registry(){  }
       /* сборище хэшей для передаваемых объектов */
       registry.prototype.reg = {}
       /* метод для добавления объектов */
       registry.prototype.add = function(name, object){
          this.reg[name] = object;
       }
       /* метод для получение объектов */
       registry.prototype.get = function (name){
          return this.reg[name];
       }

      this.instance = new registry();
   }
 return this.instance;
 }

.* а так его использовать */
/* добавляем в реестр объект */
 Registry().add('test', 3);
/* получаем объект */
 alert(Registry().get('test'));

 </script>

Вот и всё. И даже не скажешь, что не спал ночь )

Функция отмены последнего действия (Undo) – это просто(Вторая часть): Срочные события

November 9th, 2007 No comments

undo.jpgЭто вторая часть серии “Функция отмены – это просто”. Если вы их пропустили, то прочитайте первую часть [ перевод ].

В предыдущий раз рассматривали метод очереди событий, как полностью клиентскую реализацию лёгкой многоуровневой функции отмены. Я упоминал о паре обмолвок: это не работает в многопользовательской среде и не работает в время-зависимых событиях, как отправка email. Я пропустил существенную оговорку, на которой обратил внимание один с моих читателей, Alexander Botero-Lowry: два таба, в которых открыта одна и та же страница, не синхронизируются. Я написал, как это решить с помощью cookies [ перевод ]. Read more…