co to jest samo-wykonująca się funkcja anonimowa lub co robi ten kod?

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"

Czy ktoś może mi pomóc zrozumieć, co tu się dzieje? Dostaję to, jeśli zadzwonisznotGlobalFunction(), po prostu wywoła drugą funkcję.

Ale co to jestvar module = {} robić? i dlaczego jest wywoływany ponownie w pierwszej funkcji?

Mówi się, że jest to powszechnie znane jako anonimowa funkcja wykonująca się samodzielnie, ale tak naprawdę nie wiem, co to znaczy.

questionAnswers(4)

yourAnswerToTheQuestion