Dada una función y la tarea es obtener el nombre de la función que se está ejecutando actualmente usando JavaScript.
- Enfoque 1: usar el método arguments.callee: se refiere a la función que se está ejecutando actualmente dentro del cuerpo de esa función. En este método, usamos arguments.callee para referirnos al nombre de la función. Así que definimos una nueva variable como arguments.callee.toString() . Luego usamos (variable_name).substr para obtener la función y luego la mostramos como una alerta.
Sintaxis:
arguments.callee.toString()
Sin embargo, es posible que deba analizar el nombre, ya que probablemente incluirá algo de basura adicional.
Ejemplo 1: Este ejemplo muestra la función que se está ejecutando actualmente usando el método arguments.callee .
<!DOCTYPE HTML>
<html>
<head>
<title>
How to get currently running
function
name using JavaScript ?
</title>
</head>
<body style =
"text-align:center;"
>
<h1 style =
"color:green;"
>
GeeksForGeeks
</h1>
<script>
function
GFGs() {
var
me = arguments.callee.toString();
me = me.substr(
'function '
.length);
me = me.substr(0, me.indexOf(
'('
));
alert(me);
}
GFGs();
</script>
</body>
</html>
Producción:
- Enfoque 2: con la ayuda del método console.log , definimos una nueva función que devuelve el nombre de la función y la llamamos función actual.
Sintaxis:
function getFuncName() { return getFuncName.caller.name } function teddy() { console.log(getFuncName()) } teddy()
Ejemplo 2: Este ejemplo muestra la función que se está ejecutando actualmente usando el método console.log .
<!DOCTYPE html>
<html>
<head>
<title>
How to get currently running
function
name using JavaScript ?
</title>
</head>
<body style =
"text-align:center;"
>
<h1 style =
"color:green;"
>
GeeksForGeeks
</h1>
<script>
function
getFuncName() {
return
getFuncName.caller.name
}
function
teddy() {
console.log(getFuncName())
}
teddy()
</script>
</body>
</html>
Producción:
Publicación traducida automáticamente
Artículo escrito por harshcooldude700 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA