2012-10-24 15 views
8

Mögliche Duplizieren:
How can I check if a javascript variable is function type?Knoten js zu überprüfen, ob ein var ist eine Funktion

Wie ich überprüfen, ob eine Variable eine Funktion für Array vorhanden ist Array.isArray() aber Function.isFunction dos'nt exist

+0

http://stackoverflow.com/q/5999998/ –

+0

erwähnenswert, dass die akzeptierte/beste Antwort ist einfacher als die Frage verwiesen, da diese nur für den Knoten ist (keine Kompatibilitätsprobleme) –

Antwort

29
if (typeof variable === 'function') { 
    // do something 
} 
3

Sie können den Operator instanceof verwenden.

var fn = function() {}; 
var result = fn instanceof Function; // result will be true 

Es berücksichtigt auch prototypische Vererbung.

1
var fn = function() {}, 
    toString = Object.prototype.toString; 

first way: 

if(toString.call(function(){}) === '[object Function]') { 
    //if is Function do something... 
} 

second way: 

if(fn.constructor.name = 'Function') { 
    //if is Function do something... 
} 

Hoffe es hilft Prost :)!

5

Underscore.js ist eine Bibliothek mit vielen nützlichen Helfern, wie dem, nach dem Sie suchen.

http://underscorejs.org/

_ = require('underscore'); 

var aFunction = function() { }; 
var notFunction = 'Not a function'; 

_.isFunction(aFunction); // true 
_.isFunction(notFunction); // false 
+0

Ich würde für diesen Fall keinen Unterstrich verwenden, da die Funktion _.isFunction nur 'typeof obj == 'function' || ist false' - https://github.com/jashkenas/underscore/blob/e944e0275abb3e1f366417ba8facb5754a7ad273/underscore.js#L1338 – tylucaskelley

Verwandte Themen