Search code examples
javascriptnode.jsfunctionnamed-parameters

Using named parameters in node.js


I am using node.js v4.3.1

I would like to use named parameters in calling functions as they are more readable.

In python, I can call a function in this manner;

info(spacing=15, width=46)

How do I do the same in node.js?

My javascript function looks something like this;

function info(spacing, width)
{
   //implementation
{

Solution

  • The standard Javascript way is to pass an "options" object like

    info({spacing:15, width:46});
    

    used in the code with

    function info(options) {
        var spacing = options.spacing || 0;
        var width = options.width || "50%";
        ...
    }
    

    as missing keys in objects return undefined that is "falsy".

    Note that passing values that are "falsy" can be problematic with this kind of code... so if this is needed you have to write more sophisticated code like

    var width = options.hasOwnProperty("width") ? options.width : "50%";
    

    or

    var width = "width" in options ? options.width : "50%";
    

    depending on if you want to support inherited options or not.

    Pay also attention that every "standard" object in Javascript inherits a constructor property, so don't name an option that way.