Baseline Widely available
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.
const sum = new Function("a", "b", "return a + b");
console.log(sum(2, 6));
// Expected output: 8
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.
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.
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
".
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4