module pattern: JavaScript Object Notation

Beitrag lesen

Nein, aber das Orginal ist ja kein echtes Objekt das mit new erzeugt wurde, daher auch keine private Gültigkeit kennt, daher bevorzuge ich die Schreibweise, die eine echte Instanz eines Objektes erzeugt und dort existiert dann ein privater Bereich.

private member kann ich bei new function(){..} und (function(){..})() haben, schließlich gibts in beiden fällen einen funktions-scope und ich kann darin closures notieren. wie etwa beim bekannten revealing module pattern

var o = new function () {
  var private = "yo";
  function public () { alert(private); }
  this.public = public;
};

vs.

var o = (function () {
  var private = "yo";
  return {
    public : public
  };
  function public () { alert(private); }
})();

doug crockford hat im YUI blog mal gegen new function argumentiert