假设我有任何变量,定义如下:
var a = function() {/* Statements */};
我想要一个检查变量类型是否像函数一样的函数。即:
function foo(v) {if (v is function type?) {/* do something */}}; foo(a);
如何检查变量a是否为Function上述定义的类型?
a
Function
当然,下划线的方式效率更高,但是当效率不是问题时,最好的检查方法是写在@Paul Rosania链接的下划线页面上。
受下划线启发,最终的isFunction函数如下:
function isFunction(functionToCheck) { return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]'; }