What do you call a `function` function?

T.J. Crowder tj.crowder at farsightsoftware.com
Sun Apr 8 10:51:54 UTC 2018

**Wow**, thanks everyone for all the input!!

I woke up this morning with "classic function" in my head, and immediately
worried about confusing people (particularly those for whom English is not
their native tongue) with `class`, since it creates a function (the

So I'm currently leaning toward Raul-Sebastian's "traditional function"
(thank you!) since it largely conveys the same meaning as "classic" without
the `class` problem.

So taking a page from Darien's magnum opus :-) I get:

* Traditional function (`function` declaration, `function` expression)
* Constructor (for both `class` and `function` when the intent is to create
a constructor; draw a distinction when necessary)
* Method (some vagueness here, we used to use "method" to refer to
traditional functions assigned as object properties, but of course, we got
methods with discernable differences -- can't be constructors, can use
`super` -- in ES2015)
* Arrow function
* `async` function
* `async` arrow function
* Generator function
* `async` generator function

I think this mostly conveys useful meaning, without getting too pedantic.

Again, thank you everyone for the very useful responses!

-- T.J. Crowder
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180408/139232c4/attachment.html>

More information about the es-discuss mailing list