节点js检查var是否是函数

时间:2012-10-24 16:45:26

标签: node.js

  

可能重复:
  How can I check if a javascript variable is function type?

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

4 个答案:

答案 0 :(得分:35)

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

答案 1 :(得分:4)

您可以使用instanceof运算符。

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

它也尊重原型继承。

答案 2 :(得分:4)

Underscore.js是一个拥有大量有用助手的库,就像你正在寻找的那样。

http://underscorejs.org/

_ = require('underscore');

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

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

答案 3 :(得分: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...
}

希望它有助于欢呼:)!