molily: Kapselung von JS-Bibliotheken

Beitrag lesen

Ein IIFE ist die EINZIGE Möglichkeit den globalen Namespace nicht zu belasten.

Manche schreiben ja

new function() {};

anstatt

(function() {})();

was vor allem beim Revealing Module Pattern sinnvoll sein kann

var Module = new function() {  
  var private = 1;  
  var public = function() { alert(private) };  
  this.foo = public;  
};

vs.

var Module = (function() {  
  var private = 1;  
  var public = function () {};  
  return {  
    foo: public  
  };  
})();

Ich finde »new« hier verwirrend (eigentlich ist es überall verwirrend, wenn man nicht ECMAScript-Interna kennt), daher bevorzuge ich die explizite Variante der IIFE.

Mathias