Function.caller

To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

Niestandardowy
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

Podsumowanie

Określa funkcję, która powołuje się na aktualnie wykonywaną funkcje.

Opis

Jeśli funkcja f została wywołana przez kod najwyższego poziomu, własność f.caller ma wartość null, w przeciwnym przypadku jest to funkcja, która wywołała f.

Ta własność zastąpiła wycofaną własność arguments.caller.

Notes

Note that in case of recursion, you can't reconstruct the call stack using this property. Consider:

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

At the moment stop() is called the call stack will be:

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

The following is true:

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

so if you tried to get the stack trace in the stop() function like this:

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

the loop would never stop.

Przykłady

Przykład: Sprawdzenie wartości własności funkcji caller

Następujący kod sprawdza wartość własności funkcji caller.

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

Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, Mgjbot, Marcoos, Ptak82
 Ostatnia aktualizacja: teoli,