I'm going through the bacon.js slide at: http://raimohanska.github.io/bacon.js-slides/1.html
In the 1st line of the 2nd block, it says:
function always(value) { return function(_) { return value } }
what does function(_)
mean?
I'm going through the bacon.js slide at: http://raimohanska.github.io/bacon.js-slides/1.html
In the 1st line of the 2nd block, it says:
function always(value) { return function(_) { return value } }
what does function(_)
mean?
It's an anonymous function with one argument, the name of that argument is
_
.I don't know why they bother with the argument, since the function doesn't use it.
It's the same as putting any other identifier to a list of arguments according to this document: http://mathiasbynens.be/notes/javascript-identifiers
You'll find in this doc that _ is a legal character that an identifier can start with.
There is no any meaning for this in your example, probably the author just thought that it's cooler than just ().
In this case
_
is just a function parameter - a single underscore is a convention used by some programmers to indicate "ignore this binding/parameter".Since JavaScript doesn't do parameter-count checking the parameter could have been omitted entirely. Such a "throw-away" identifier is found more commonly in other languages, but consider a case like
arr.forEach(function (_, i) {..})
where_
indicates the first parameter is not to be used.