Function() constructor

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 (en-US). Sin embargo, a diferencia de eval, el constructor Function crea funciones que solo se ejecutan en el ámbito global.

Pruébalo

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" —o "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.

js
// 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

Specification
ECMAScript Language Specification
# sec-function-constructor

Compatibilidad con navegadores

BCD tables only load in the browser

Ve también