Singleton на Javascript

В рабочем проекте возникла необходимость реализовать singleton на javascript. Не смотря на страсть к изобретению велосипедов я воспользовался поддежкой всемирного разума в лице google и отыскал решение на stackoverflow. Всем оно хорошо, да только не работает - функция singleton не возвращает созданный объект и javascript выводит ошибку о том, что метод неопределен.

Решение было найдено спустя пару часов. Как оказалось надо сначала создать интерфейс и только потом возвращать его из функции.

Итоговый код выглядит примерно так:

  1. function getSingleton()
  2. {
  3. var instance = (function()
  4. {
  5. var privateVar = "private data";
  6. function privateMethod ()
  7. {
  8. return privateVar;
  9. };
  10.  
  11. var inst =
  12. {
  13. publicMethod : function(data)
  14. {
  15. return data + ' & ' + privateMethod();
  16. }
  17. };
  18. return inst;
  19. })();
  20.  
  21. getSingleton = function ()
  22. {
  23. // re-define the function for subsequent calls
  24. return instance;
  25. };
  26.  
  27. // call the new function
  28. return getSingleton();
  29. }
  30.  
  31. alert(getSingleton().publicMethod('public data'));
Читайте в блоге

GTD. Корзины.
CString. Конвертация UTF8 в Windows-1251
TinyURL. Шаг 4. Обработка кнопки на примере формы входа

Метки: js oop

Комментарии:

Войдите на сайт, чтобы оставить комментарий