JavaScript style for optional callbacks

henry.oswald picture henry.oswald · Jul 22, 2011 · Viewed 56.1k times · Source

I have some functions which occasionally (not always) will receive a callback and run it. Is checking if the callback is defined/function a good style or is there a better way?

Example:

function save (callback){
   .....do stuff......
   if(typeof callback !== 'undefined'){
     callback();
   };
};

Answer

Raynos picture Raynos · Jul 22, 2011

I personally prefer

typeof callback === 'function' && callback();

The typeof command is dodgy however and should only be used for "undefined" and "function"

The problems with the typeof !== undefined is that the user might pass in a value that is defined and not a function