Javascript patterns

Immediate Function

Execute function as soon as it’s defined, variables declared inside have local function scope. Can return values or other functions.

var sayHello = (function () {
  var sometext = "Hello world";
  return function () {
    return sometext;
  };
})();

Privacy, Module Pattern

Private variables can be hidden within the scope of a function, in the case below foo is a private variable.

var foo = (function () {
  //private
  var bar = "Hello I'm private";

  //public accessor
  return {
    getBar: function () {
      return bar;
    },
  };
})();

Since private variables will be recreated every time you can save memory by putting private variables into prototypes.

function Fast() {}

Fast.prototype = (function () {
  //private
  var fastFoo = "Hello I'm fast private Foo";
  //public prototype
  return {
    getFastFoo: function () {
      return fastFoo;
    },
  };
})();