Shorthand for empty function in Node.js

Javascriptnode.js

Javascript Problem Overview


In JS, there is shorthand for an empty object which is {}. Is there shorthand for an empty function in JS?

The reason being, as functions are first-class objects, we use them as arguments more often, but passing in an empty function is at best ugly.

var foo = baz(function(){});

In order to declare a function, at somepoint we have to declare function(){}.

I would like more Node.js APIs to require a (callback) function to be passed, so the API doesn't deceivingly look synchronous. Perhaps one step in that direction would be to create shorthand for empty placeholder functions.

Javascript Solutions


Solution 1 - Javascript

No, there is not. With ES6, you might be able to use an arrow function: ()=>{} which is a bit shorter.

If you really need this very often (you shouldn't?!), you can declare one yourself:

function noop(){}

and then refer to that repeatedly. If you don't want to clutter your scope, you can also use the Function.prototype function (sic!) which does nothing but constantly return undefined - yet that's actually longer than your function expression.

Solution 2 - Javascript

ES6 one could be:

   const noop = () => {};

Be careful if using Babel as it compiles differently - instead you can explicitly return something:

   const noop = () => ({});

See this tweet as to why the curly braces are important: https://twitter.com/_ericelliott/status/601420050327711744?lang=en

Solution 3 - Javascript

If you use lodash, there is a noop method.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlexander MillsView Question on Stackoverflow
Solution 1 - JavascriptBergiView Answer on Stackoverflow
Solution 2 - JavascriptsidonaldsonView Answer on Stackoverflow
Solution 3 - JavascriptJeff LoweryView Answer on Stackoverflow