pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Function/caller

//developer.mozilla.org/favicon.svg" />

Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.

View in English Always switch to English

Function.caller

No estándar: Esta función no está estandarizada. No recomendamos usar funciones no estándar en producción, ya que tienen un soporte limitado en los navegadores y pueden cambiar o eliminarse. Sin embargo, pueden ser una alternativa adecuada en casos específicos donde no exista una opción estándar.

Resumen

La propiedad function.caller retorna la función que llamó a la función especificada.

Descripción

Si la función f fue llamada por desde nivel raiz (top level code), el valor de f.caller es null, de lo contrario se retorna la función que llamó a f.

Esta propiedad reemplaza a la propiedad obsoleta arguments.caller del objeto arguments.

la propiedad especial __caller__, la cual retornaba el objeto de activación del llamador y permitía reconstruir la pila de llamadas, ha sido removida por motivos de seguridad.

Notas

En caso de recursión se puede reconstruir la pila de llamada utilizando esta propiedad, tal como se muestra a continuación:

js
function f(n) {
  g(n - 1);
}
function g(n) {
  if (n > 0) {
    f(n);
  } else {
    stop();
  }
}
f(2);

Al momento de ejecutar stop() este se llama con la siguiente pila de llamadas:

f(2) -> g(1) -> f(1) -> g(0) -> stop()

Siendo verdadero la siguiente consideración:

stop.caller === g && f.caller === g && g.caller === f

Por lo tanto si se intenta obtener el rastro de llamadas (stack trace) de la función stop() como se muestra a continuación:

js
var f = stop;
var stack = "Stack trace:";
while (f) {
  stack += "\n" + f.name;
  f = f.caller;
}

se provocará una bucle que nunca termina.

Ejemplos

Ejemplo: Verificar el valor de la propiedad caller de una función

El siguiente código verifica el valor de la propiedad caller de una función.

js
function myFunc() {
  if (myFunc.caller == null) {
    return "The function was called from the top!";
  } else {
    return "This function's caller was " + myFunc.caller;
  }
}

Especificación

No es parte de ninguna especificación.

Compatiblilidad de Navegadores

Véase también

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy