This translation is incomplete. Please help translate this article from English

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.


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


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.


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(); } }

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 = f.caller;

the loop would never stop.


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);