setTimeout with arguments

javascript

Solution

You can pass it an anonymous function that invokes `makeTimeout` with the given arguments:

setTimeout(function () {
  makeTimeout(sp.name);
}, 250);

There's also an alternative, using `bind`:

setTimeout(makeTimeout.bind(this, sp.name), 250);

This function, however, is an ECMAScript 5th Edition feature, not yet supported in all major browsers. For compatibility, you can include `bind`'s source, which is available at MDN, allowing you to use it in browsers that don't support it natively.

DEMO.

Problem

having a bit of a headache on trying to work this out. What I want to do is have a custom setTimeout with arguments with out having to create a function to pass it. Let me explain by code: Want to avoid: ``` function makeTimeout(serial){ serial.close(); } setTimeout(makeTimeout(sp.name), 250); ``` what I want to do is somehow just call a 1 liner by like: ``` setTimeout(function(arg1){ .... }(argument_value), 250); ``` Can this be done or can you only pass in a no argument function?

Original source