Loading:


    JavaScript Funckja caller

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


    Ta własność nie jest częścią standardu ECMA-262 edycja 3. Zaimplementowana w najmniejszym stopniu jest w SpiderMonkey (JavaScriptowy silnik użyty w Mozilli) (zobacz błąd 65683) i JScript.


    Własność obiektu: Function

    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.


    Notacja



    Zauważ, że w przypadku rekonstrukcji, nie możesz zrekonstrułować właściwości




    Rozważmy:


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




    w tym momencie stop() nazywa sie stosem wywołania:


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


    Ponieższe stwierdzenie jest prawdą:


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


    jeśli sprubujesz uzyskać ślad stosu w funkcji stop() będzie ona taka jak:

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



    pętla nigdy sie nie zatrzyma.


    The special property __caller__, which returned the activation object of the caller thus allowing to reconstruct the stack, was removed for security reasons.

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

     



    Napisz Artyku³

    Listing

    niema




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors