Вы возвращаете блок, внутри которого определена функция. Вместо этого верните функцию напрямую. Пожалуйста, найдите следующий код для справки.
var temp = (function () {
var a =10;
return function (a) {
console.log('Value of a is ' + a);
}
})();
temp();
И если вы хотите получить доступ к значению 'a' из внешней области видимости, тогда используйте другое имя для параметра во внутренней функции.
var temp = (function () {
var a =10;
return function (b) {
a = b || a;
console.log('Value of a is ' + a);
}
})();
temp();