[removed] what does function(_) mean

2019-01-25 10:03发布

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?

3条回答
不美不萌又怎样
2楼-- · 2019-01-25 10:32

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.

查看更多
时光不老,我们不散
3楼-- · 2019-01-25 10:41

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 ().

查看更多
趁早两清
4楼-- · 2019-01-25 10:49

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.

查看更多
登录 后发表回答