Function creates a new
Function object. Calling the constructor directly can create functions dynamically, but suffers from security and similar (but far less significant) performance issues to
eval. However, unlike eval, the
Function constructor creates functions which execute in the global scope only.
new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
arg1, arg2, ... argN
Function objects created with the
Function constructor are parsed when the function is created. This is less efficient than declaring a function with a function expression or function statement and calling it within your code because such functions are parsed with the rest of the code.
All arguments passed to the function are treated as the names of the identifiers of the parameters in the function to be created, in the order in which they are passed. Omitting an argument will result in the value of that parameter being
Function constructor as a function (without using the
new operator) has the same effect as invoking it as a constructor.
The following code creates a
Function object that takes two arguments.
The arguments "
a" and "
b" are formal argument names that are used in the function body, "
return a + b".
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.