Я столкнулся с той же проблемой с замыканиями и заставил эту скрипку поэкспериментировать с другими способами вызова других функций в замыкании.
http://jsfiddle.net/7FzEz/5/
Я, наконец, остановился на этом формате:
(function () {
var obj = {
settings: {
myVar: 'test'
},
init: function() {
var memberSearchFrm = document.getElementById('memberSearch');
memberSearchFrm.onsubmit = function() {
obj.someOtherFunction();
console.log(obj.settings.myVar);
}
},
someOtherFunction: function() {
console.log('test');
}
}
obj.init();
})();