Prüfen, ob eine Variable vom Typ Funktion ist
Angenommen, ich habe eine Variable, die wie folgt definiert ist:
var a = function() {/* Statements */};
Ich möchte eine Funktion, die prüft, ob der Typ der Variablen funktionsähnlich ist, d.h. :
function foo(v) {if (v is function type?) {/* do something */}};
foo(a);
Wie kann ich prüfen, ob die Variable a
vom Typ Funktion
ist, wie oben definiert?
816
3
Sicherlich ist der Weg von underscore effizienter, aber der beste Weg zur Überprüfung, wenn Effizienz kein Thema ist, ist auf der von @Paul Rosania verlinkten Seite von underscore beschrieben.
Inspiriert von underscore ist die endgültige isFunction-Funktion wie folgt:
Underscore.js verwendet einen aufwändigeren, aber sehr leistungsfähigen Test:
Siehe: http://jsperf.com/alternative-isfunction-implementations
EDIT: aktualisierte Tests deuten darauf hin, dass typeof schneller sein könnte, siehe http://jsperf.com/alternative-isfunction-implementations/4