检查变量是否属于函数类型
2022-08-29 22:05:18
假设我有任何变量,定义如下:
var a = function() {/* Statements */};
我想要一个函数来检查变量的类型是否与函数类似。即:
function foo(v) {if (v is function type?) {/* do something */}};
foo(a);
如何检查变量的类型是否与上面定义的方式相同?a
Function
假设我有任何变量,定义如下:
var a = function() {/* Statements */};
我想要一个函数来检查变量的类型是否与函数类似。即:
function foo(v) {if (v is function type?) {/* do something */}};
foo(a);
如何检查变量的类型是否与上面定义的方式相同?a
Function
if (typeof v === 'function') {
// do something
}
当然,下划线的方式更有效率,但是当效率不是问题时,最好的检查方法是写在由@Paul Rosania链接的下划线页面上。
受下划线的启发,最后的 isFunction 函数如下所示:
function isFunction(functionToCheck) {
return functionToCheck && {}.toString.call(functionToCheck) === '[object Function]';
}
注意:此解决方案不适用于异步函数、生成器或代理函数。有关更多最新解决方案,请参阅其他答案。