difference between Function and new Function
The spec (page 127) says they're identical.
15.3.1.1 Function (p1, p2, … , pn, body)
When the
Function
function is called with some arguments p1, p2, … , pn, body (where n might be 0, that is, there are no “p” arguments, and where body might also not be provided), the following steps are taken:
- Create and return a new Function object as if the standard built-in constructor Function was used in a new expression with the same arguments (15.3.2.1).
However, you should avoid the Function
constructor at all costs.
It needs to eval
the string you pass to it; eval
is evil, and slow too.