Skip to main content


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 eventsAPI functionsLS.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 given event type LS.removeAllEventListeners(eventType) Event registering/unregister…