"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Se pueden crear funciones con nombre en tiempo de ejecución en JavaScript sin `eval`?

¿Se pueden crear funciones con nombre en tiempo de ejecución en JavaScript sin `eval`?

Publicado el 2024-11-15
Navegar:751

Can You Create Runtime-Named Functions in JavaScript Without `eval`?

Funciones con nombre en tiempo de ejecución sin Eval en JavaScript

¿Es posible crear una función de JavaScript con un nombre determinado en tiempo de ejecución, sin utilizar eval o características no convencionales específicas del motor? ? Sí, esto ahora es posible con ECMAScript 2015 (ES6) y versiones posteriores.

Solución ES6: nombres de propiedades calculados

En ES6, una expresión de función anónima asignada a una propiedad de objeto toma el nombre de esa propiedad. Esto se puede combinar con nombres de propiedades calculados para nombrar una función sin función nueva o evaluación. Por ejemplo:

const dynamicName = "foo"   Math.floor(Math.random() * 1000);
const obj = {
    [dynamicName]() {
        throw new Error();
    },
};
const f = obj[dynamicName];

Esto crea una función llamada "foo###" donde ### es un número aleatorio de 1 a 3 dígitos.

Visibilidad del nombre de la función

La propiedad de nombre de la función reflejará el nombre dinámico. La nota de compatibilidad en el fragmento de código anterior se refiere al hecho de que Edge y Safari actualmente no muestran el nombre en los seguimientos de la pila.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3