假设有任意变量,定义如下:

var a = function() {/* Statements */};

我想要一个函数来检查变量的类型是否为类函数。例如:

function foo(v) {if (v is function type?) {/* do something */}};
foo(a);

我怎样才能检查变量a是否为上述定义的函数类型?


当前回答

下面的代码似乎也适用于我(从node.js测试):

var isFunction = function(o) {
     return Function.prototype.isPrototypeOf(o);
};

console.log(isFunction(function(){})); // true
console.log(isFunction({})); // false

其他回答

从节点v0.11开始,你可以使用标准的util函数:

var util = require('util');
util.isFunction('foo');

另一种简单的方法:

var fn = function () {}
if (fn.constructor === Function) {
  // true
} else {
  // false
}

你应该在js中使用typeOf操作符。

var a=function(){
    alert("fun a");
}
alert(typeof a);// alerts "function"

Const foo = function() {}; If (typeof foo === 'function') { console.log(“函数”) }

下面的代码似乎也适用于我(从node.js测试):

var isFunction = function(o) {
     return Function.prototype.isPrototypeOf(o);
};

console.log(isFunction(function(){})); // true
console.log(isFunction({})); // false