I have dealt with optional parameters with default values in JavaScript plenty of times in the past. But for some reason it wasn’t immediately obvious to me how to create a nice options hash like I use so frequently when writing my Ruby code. It really is quite simple.

Here are the beginnings of a little function to handle the changing of a timeframe in a dropdown. The very obvious key is to default your options parameter to an empty hash if it comes through as null/undefined. I’m not sure why that eluded me for a while this afternoon. I’m defaulting the possible options in a couple different ways. I’m checking if boolean options are defined before defaulting them. For string options, I’m simply using an || operator.

function on_timeframe_change(options){
  options                     = options || {};
  var hide_selector_on_custom = typeof(options['hide_selector_on_custom']) == 'undefined' ? 
                                  false : 
                                  options['hide_selector_on_custom'];
  var prefix                  = options['prefix'] || '';
  var grab_focus              = typeof(options['grab_focus']) == 'undefined' ? 
                                  true : 
                                  options['grab_focus'];

  . . .

}

Sorry if you cannot handle ternary operators.

Sep 02, 2009 · Subscribe · Archive · Projects · Twitter · GitHub · Flickr