artshelom: var всплывает наверх функции, из блока if => условие всегда будет истинно
если нужен объект из замыкания - просто уберите var
если проверяете объект в global-space, то:
(window || global || (new Function('return this'))()).Lister = {};
Владимир: почитайте документацию и поймете что значит всплывает. Learn.javascript.ru . У js свои заморочки и они достаточно сильно его выделяют среди языков программирования.