Function constructor creates
Function object. Calling the constructor directly
can create functions dynamically, but suffers from security and similar (but far less
significant) performance issues to
Global_Objects/eval. However, unlike eval, the
Function constructor creates functions which execute in the global scope
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
arg1, arg2, ... argN
- Names to be used by the function as formal argument names. Each must be a string
with a comma. For example: "
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".
BCD tables only load in the browser