1

Onderwerp: JS namespacing

Welke manier om je JavaScript te namespacen gebruiken jullie? Er zijn hier verschillende patterns voor. Wat vinden jullie de voors en tegens van de verschillende methodes? Ik gebruik meestal een vrij simpele welke gebaseerd is op een techniek uit JavaScript Patterns:

// root namespace, zou al gedefinieerd kunnen zijn in een ander script in onze webapp
var NS = NS || {};
// NS uitbreiden met een object voor dit specifieke script
NS.mijnScript = {};

NS.mijnScript.mijnFunctie = function () { ..... };

Vervolgens initen:

$(function () {
  NS.mijnScript.mijnFunctie();
});

2

Re: JS namespacing

Ik gebruik voor het main-JS bestand ongeveer deze manier. Enige verschil is dat ik het zo doe:

var Foobar = Foobar || {};

Foobar.general = {
  init: function() {
    setTimeout(Foobar.general.specificFunction, 500);
  },

  specificFunction: function() {}
}

$(Foobar.general.init);

Voor specifieke features die hergebruikt worden schrijf ik jQuery plugins:

(function($) {
  $.fn.fooBarFunctie = function() {
    function animeer() {
      // do stuff
    }

    $('selector').on('click', 'selector', animeer);
  }
})(jQuery);

Dit zorgt ervoor dat er slechts 1 veriabele in de namespace van jQuery komt, het gewenste effect.