Javascript finden aufrufende Funktion

9

Ich habe eine Funktion in JS, die von mehreren Orten aufgerufen wird.

Jetzt teste ich diese Seite auf einem iPad und finde daher das Debuggen etwas schwierig.

Kann ich auf irgendeine Weise herausfinden (von der Konsole aus), woher meine Funktion aufgerufen wird?

    
testndtv 21.11.2011, 11:43
quelle

3 Antworten

13

So?

%Vor%

Wenn du 'use strict'; in deiner JavaScript-Datei verwendest, musst du sie kommentieren / entfernen, sonst bekommst du so etwas:

  

Uncaught TypeError: Auf die Eigenschaften 'caller', 'callee' und 'arguments' darf bei strict mode-Funktionen oder den arguments-Objekten für Aufrufe an sie nicht zugegriffen werden

    
James 21.11.2011, 11:47
quelle
9

Eine einfache Art, die ich verwenden möchte, ist arguments.callee.caller.name .

Angenommen, Sie möchten wissen, was eine Funktion namens myFunction aufruft:

%Vor%

Die Browser-Unterstützung dafür ist jedoch nicht so gut, also könnten Sie stattdessen arguments.callee.caller.toString () verwenden. Beachten Sie, dass Sie dadurch den Inhalt der Funktion, die myFunction aufgerufen hat, zurückgeben werden. Daher müssen Sie den Funktionsnamen selbst aus dem Namen auslesen.

Oder Sie könnten eine schöne Stack-Trace-Funktion wie folgt verwenden:

%Vor%

Stack Trace über Ссылка

    
SquareFeet 21.11.2011 12:01
quelle
0

Details zum Aufrufer angeben:

%Vor%

Anstelle von arguments.callee.caller.toString() können wir auch functionName.caller

verwenden

Beispiel:

%Vor%

Ausgabe: wird in beiden Fällen gleich sein

%Vor%     
Nishant Kumar 03.01.2014 11:15
quelle