Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Function() constructor
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
El constructorFunction crea un nuevoobjetoFunction. Llamar al constructor directamente puede crear funciones dinámicamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) paraeval. Sin embargo, a diferencia de eval, el constructorFunction crea funciones que solo se ejecutan en el ámbito global.
In this article
Pruébalo
const sum = new Function("a", "b", "return a + b");console.log(sum(2, 6));// Expected output: 8Sintaxis
new Function([arg1 [, arg2 [, ...argN]] ,] functionBody)
Parámetros
arg1, arg2, ... argNNombres 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" —o "x,theValue".functionBodyUna cadena que contiene las declaraciones de JavaScript que comprenden la definición de función.
Descripción
Los objetosFunction creados con el constructorFunction se procesan cuando se crea la función. Esto es menos eficiente que declarar una función con unaexpresión de función odeclaració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 seaundefined.
Invocar el constructorFunction como función (sin usar el operadornew) tiene el mismo efecto que invocarlo como constructor.
Ejemplos
>Especificar argumentos con el constructor Function
El siguiente código crea un objetoFunction 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 argumentosconst adder = new Function("a", "b", "return a + b");// Llama a la funciónadder(2, 6);// 8Los argumentos "a" y "b" son nombres de argumentos formales que se utilizan en el cuerpo de la función, "return a + b".
Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-function-constructor> |