Js App Namespace

by sinky

JavaScript

(function(){
  var APPNAME = {};
  var options = {};
  var defaults = {
    foo: 'bar'
  };
  
  var privateFunction = function() {
    console.log(options.foo);
  }
  
  APPNAME.publicFunction = function() {
    console.log(options.foo);
  }  
  
  /*= Options
  ================*/
  APPNAME.setOptions = function(custom) {
    options = {};
    for (var key in defaults){
      options[key] = custom.hasOwnProperty(key) ? custom[key] : defaults[key];
    }
    return this;
  };  

  APPNAME.setOptions(defaults);

  window.APPNAME = APPNAME;
})();