La propiedad function.caller del objeto de función de JavaScript devuelve la función que invocó la función especificada. Devuelve nulo si la función «f» fue invocada por el código de nivel superior en JavaScript. Para funciones como funciones estrictas, funciones asíncronas y funciones de generador, este método devuelve nulo.
Sintaxis:
function.caller
Parámetros: Esta función no acepta ningún parámetro.
Valor de retorno: esta función devuelve un valor nulo para los emisores de funciones estrictas, asincrónicas y generadoras.
A continuación se dan algunos ejemplos para una mejor comprensión de los métodos de función.
Ejemplo 1:
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> </head> <body> <script> // Creating func2 function func2() { console.log("This is from function 2") } // Creating func1 function func1() { func2(); } // Call Function 1 func1(); // null is returned as function // is strict, async function and // generator function console.log("from function.caller: ", func1.caller) </script> </body> </html>
Producción:
Ejemplo 2:
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> </head> <body> <script> function myFunc() { if (myFunc.caller == null) console.log("The function " + "was called from the top!"); else console.log("This function's " + "caller was " + myFunc.caller); } myFunc() </script> </body> </html>
Producción:
Navegadores compatibles:
- Google Chrome 1 y superior
- Microsoft Edge 12 y superior
- Mozilla Firefox 1 y superior
- Internet Explorer 8 y superior
- Safari 3 y superior
- Ópera 9.6 y superior