Programmgesteuert auf den Funktionsstandort zugreifen

8

Ist es im Code möglich, auf die Eigenschaft " ["[[FunctionLocation]]"] " zuzugreifen, die Google Chrome-Entwicklertools anzeigen, wenn die Konsolenprotokollfunktion verwendet wird?

    
Sushruth 14.12.2016, 15:32
quelle

2 Antworten

12

Die Antwort ist im Moment nein .

Die Eigenschaft [[FunctionLocation]] , die Sie im Inspektor sehen, wird in V8Debugger::internalProperties() im C ++ - Code des Debuggers, der eine andere C ++ - Funktion verwendet V8Debugger::functionLocation() , um Informationen über die Funktion zu sammeln. functionLocation() verwendet dann eine Anzahl von V8-spezifischen C ++ - APIs wie v8::Function::GetScriptLineNumber() und GetScriptColumnNumber() , um die genauen Informationen herauszufinden.

Alle oben beschriebenen APIs stehen ausschließlich für C ++ - Code und nicht für JavaScript-Code zur Verfügung. Wenn Sie versuchen, diese Aufgabe auf einer Plattform wie Node.js auszuführen, sollten Sie in der Lage sein, ein natives Modul zu schreiben. Wenn nicht, dann hast du kein Glück.

    
Timothy Gu 15.01.2017, 21:36
quelle
0

console.log kann den Funktionsnamen in Chrome mit eingeschränkter Sprache anzeigen Unterstützung .

Ich habe den Funktionsnamen beim Debuggen von Callbacks und beim Verwenden des Beobachtermusters gefunden. Beachten Sie, dass dazu Benennungsfunktionen erforderlich sind (anonyme Funktionsnamen sind offensichtlich leer).

%Vor%

Ausgaben Name of function myFn

    
Simon Hutchison 18.10.2017 04:45
quelle