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?
You can pass it an anonymous function that invokes
makeTimeoutwith the given arguments:There’s also an alternative, using
bind: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.