Wie

2013-09-26 18 views
8

Funktion Unterschrift in Javascript Druck habe ich eine Funktion:Wie

fs.readFile = function(filename, callback) { 
    // implementation code. 
}; 

Einige Zeit später mag ich beim Debuggen der Signatur der Funktion sehen.

Wenn ich versuchte bekomme ich [ FUNCTION ].

Das gibt mir keine Informationen.

Wie kann ich die Signatur der Funktion erhalten?

+1

Es gibt keine Arten in Javascript, also gibt es nicht viel von einer Signatur. – Amberlamps

+0

@Amberlamps Kann ich die Anzahl der Variablen kennen, die diese Funktion in ihrer Signatur hat? Obwohl wir so viele passieren können wie wir wollen. –

+0

Sie können die Signatur ootb wegen der fehlenden Typen nicht lesen, aber ich denke das [SO-Antwort] (http://stackoverflow.com/questions/4833399/how-to-detect-a-jacascript-function-with-a Eine bestimmte Signatur, die registriert wurde, hilft Ihnen, eine Hilfsfunktion zum Erkennen der Signatur zu erstellen. – Martin

Antwort

16

In node.js Insbesondere haben Sie die Funktion Zeichenfolge, bevor die Protokollierung zu konvertieren:

$ node 
> foo = function(bar, baz) { /* codez */ } 
[Function] 
> console.log(foo) 
[Function] 
undefined 
> console.log(foo.toString()) 
function (bar, baz) { /* codez */ } 
undefined 
> 

oder eine Verknüpfung verwenden, wie foo+""

2

Ich bin mir nicht sicher, was Sie wollen, aber versuchen Sie das Konsolenprotokoll dieser Geige zu betrachten, es druckt die gesamte Funktionsdefinition. Ich sehe Chrome console.log Ausgabe.

var fs = fs || {}; 
fs.readFile = function(filename, callback) { 
    alert(1); 
}; 
console.log(fs.readFile); 

DEMO http://jsfiddle.net/K7DMA/

+0

Sie haben Recht, Code ist nach dem Aufruf von toString() des Funktionsobjekts verfügbar – Damask

1

Wenn das, was du meinst Mit "Funktionssignatur" können Sie so viele Argumente definieren, die Sie definiert haben:

function fn (one) {} 
console.log(fn.length); // 1 

Alle Funktionen erhalten automatisch eine Längeneigenschaft.