Skip to main content

Posts

Showing posts from July, 2014

JavaScript: Utility function to default function in parameters

Recently I came across a interesting discussion on  reddit . And that was about a utility function which will give you flexibility to define default function in parameters. I found it very interesting, so wrote one for me. /* in param: defaultArg1, defaultArg2, .... function return : function */ var defaultParams = function(){ var args = arguments, len = args.length, fn = args[--len], defaultArg = []; if(typeof fn !== 'function'){ throw new Error('invalid arguments'); } while(len--){ defaultArg[len] = args[len]; } return function(){ var args = arguments, fnlen = fn.length, params = []; while(fnlen--){ params[fnlen] = args[fnlen] == null ? defaultArg[fnlen] : args[fnlen]; } return fn.apply(this, params); } } //how to use var alert_my_age = defaultParams(21, function(age) { console.log(age); }) alert_my_age() //#=> Alerts 21 alert_my_age(45) //#=> Alerts 45

JavaScript: Light weight wrapper class for window.localStorage

Recently I wrote a small wrapper class around the window.localStorage with useful functionality apart from normal get/set value. For example Accessors for JSON/Boolean/Number, Event registering for type create/update/remove/clear events API functions LS.set(key, value) LS.setJson(key, jsonObject) LS. remove (key) LS. clear () LS.get(key) : String LS.getJson(key) : JsonObject LS.getNumber(key) : Int LS.getBoolean(key) : Boolean //Event API LS.on( event , listenerFunction, scope) : function //this return function can be used for unregistering from event //different type and listeners callback param events type : ' create ' listenerFunction callback param : key, value events type : ' update ' listenerFunction callback param : key, newValue, oldValue events type : ' remove ' listenerFunction callback param : key events type : ' clear ' listenerFunction callback param : //remove all the registered event for