Самовозвратная функция возвращает объект со свойством hi
, этот объект не добавляется в глобальную область видимости, поэтому вы можете напрямую использовать это свойство. Поместите результат функции в переменную:
var o =
(function(){
var a = function (){
alert("hey now!! ");
};
return {"hi":function(){return a;}};
})();
Использование свойства для вызова функции вернет только функцию, содержащуюся в переменной a
, поэтому для вызова функции, содержащей предупреждение, необходимо вызвать возвращаемое значение из функции:
o.hi()();
Демо: http://jsfiddle.net/Guffa/9twaH/