La función de auto invocación devuelve un objeto con la propiedad hi
, este objeto no se añade al ámbito global, de modo que se puede utilizar directamente con el establecimiento. Poner el resultado de la función en una variable:
var o =
(function(){
var a = function(){
alert("hey now!! ");
};
return {"hi":function(){return a;}};
})();
Mediante la propiedad de llamar a la función sólo devolverá la función contenida en la variable a
, por lo que tiene que llamar el valor de retorno de la función de llamar a la función que contiene la alerta:
o.hi()();
demostración: http://jsfiddle.net/Guffa/9twaH/
reemplazar "return a;" con solo "a" y funcionará. –