¿Qué es la función anónima autoejecutable o qué hace este código?

var module = {};


(function(exports){

  exports.notGlobalFunction = function() {
    console.log('I am not global');
  };  

}(module));

function notGlobalFunction() {
  console.log('I am global');
}

notGlobalFunction(); //outputs "I am global"
module.notGlobalFunction(); //outputs "I am not global"

¿Puede alguien ayudarme a entender lo que está pasando aquí? Entiendo eso si llamasnotGlobalFunction(), solo llamará a la segunda función.

Pero que esvar module = {} ¿obra? ¿Y por qué se vuelve a llamar dentro de la primera función?

Dice que esto se conoce comúnmente como una función anónima autoejecutable, pero realmente no sé qué significa eso.

Respuestas a la pregunta(4)

Su respuesta a la pregunta