Quiero obtener el nombre de una función en una función de flecha.
En realidad, si escribimos
function abc(){ let funcName = arguments.callee.name }Pero en una función de flecha
abc: ()=>{ let funcName = arguments.callee.name }funcName devuelve ''
arguments . Pero tienen acceso al objeto de argumentos de la función principal sin flecha más cercana. Se confía en gran medida en los parámetros con nombre y de descanso para capturar los argumentos pasados a las funciones de flecha. function dummy() { return (() => arguments.callee.name)(); // dummy }this función dentro de una flecha sigue siendo el mismo durante todo el ciclo de vida de la función y está vinculado al valor del entorno más cercano this proporciona. const obj = { // like a normal function, returns obj - defines like obj.a = function a() {}; a() { return this }, // arrow function uses global as this b: () => { return this }, }; console.log(obj.a() == obj) // true console.log(obj.b() == obj) // false console.log(obj.b() == window) // truePor lo tanto, la única forma de obtener el nombre de una función de flecha es acceder a la referencia directa a la misma.
const arrow = () => arrow.name; console.log(arrow()); // "arrow" const obj = { a: () => obj.a.name; } console.log(obj.a()); // "a"