El constructor Function
crea un nuevo objeto Function
. Llamar al constructor directamente puede crear funciones din谩micamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) para eval
. Sin embargo, a diferencia de eval, el constructor Function
crea funciones que solo se ejecutan en el 谩mbito global.
La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si deseas contribuir al proyecto de ejemplos interactivos, clona https://github.com/mdn/interactive-examples y env铆anos una solicitud de extracci贸n.
Sintaxis
new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
Par谩metros
arg1, arg2, ... argN
- Nombres que utilizar谩 la funci贸n como nombres de argumentos formales. Cada uno debe ser una cadena que corresponda a un identificador JavaScript v谩lido, o una lista de dichas cadenas separadas por una coma. Por ejemplo: "
x
", "theValue
" 鈥攐 "x,theValue
". functionBody
- Una cadena que contiene las declaraciones de JavaScript que comprenden la definici贸n de funci贸n.
Descripci贸n
Los objetos Function
creados con el constructor Function
se procesan cuando se crea la funci贸n. Esto es menos eficiente que declarar una funci贸n con una expresi贸n de funci贸n
o declaraci贸n de funci贸n
y llamarla dentro de tu c贸digo porque tales funciones se procesan con el resto del c贸digo.
Todos los argumentos pasados a la funci贸n se tratan como los nombres de los identificadores de los par谩metros en la funci贸n que se va a crear, en el orden en que se pasan. Omitir un argumento dar谩 como resultado que el valor de ese par谩metro sea undefined
.
Invocar el constructor Function
como funci贸n (sin usar el operador new
) tiene el mismo efecto que invocarlo como constructor.
Ejemplos
Especificar argumentos con el constructor Function
El siguiente c贸digo crea un objeto Function
que toma dos argumentos.
// El ejemplo se puede ejecutar directamente en tu consola JavaScript
// Crea una funci贸n que toma dos argumentos y devuelve la suma de esos argumentos
const adder = new Function('a', 'b', 'return a + b');
// Llama a la funci贸n
adder(2, 6);
// 8
Los argumentos "a
" y "b
" son nombres de argumentos formales que se utilizan en el cuerpo de la funci贸n, "return a + b
".
Especificaciones
Compatibilidad del navegador
BCD tables only load in the browser