¿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.
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.
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.
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