21

可能重复:
如何检查 javascript 变量是否为函数类型?

我如何检查变量是否是数组的函数存在Array.isArray()Function.isFunction不存在

4

4 回答 4

48
if (typeof variable === 'function') {
    // do something
}
于 2012-10-24T16:46:47.603 回答
6

您可以使用instanceof运算符。

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

它还尊重原型继承。

于 2012-10-24T16:50:12.887 回答
4

Underscore.js 是一个包含许多有用帮助器的库,就像您正在寻找的那个。

http://underscorejs.org/

_ = require('underscore');

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

_.isFunction(aFunction); // true
_.isFunction(notFunction); // false
于 2012-10-24T17:24:53.573 回答
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...
}

希望它有助于欢呼:)!

于 2012-10-24T17:04:08.870 回答