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

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.

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

Especificación
ECMAScript (ECMA-262)
La definición de 'Constructor Function' en esta especificación.

Compatibilidad del navegador

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
Function() constructorChrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 4Opera Soporte completo 3Safari Soporte completo 1WebView Android Soporte completo 1Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 10.1Safari iOS Soporte completo 1Samsung Internet Android Soporte completo 1.0nodejs Soporte completo Si

Leyenda

Soporte completo  
Soporte completo

Ve también