一尘不染

检查变量是否为函数类型

javascript

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

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

我想要一个检查变量类型是否像函数一样的函数。即:

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

如何检查变量a是否为Function上述定义的类型?


阅读 246

收藏
2020-04-25

共1个答案

一尘不染

当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。

受下划线启发,最终的isFunction函数如下:

function isFunction(functionToCheck) {
 return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';
}
2020-04-25