js .isfunction 实现
在JavaScript中,可以通过多种方式判断一个变量是否为函数类型。以下是几种常见的实现方法:
使用typeof操作符
通过typeof操作符可以检测变量的类型是否为function:
function isFunction(value) {
return typeof value === 'function';
}
使用instanceof操作符
结合Function构造函数,可以检查变量是否为函数实例:
function isFunction(value) {
return value instanceof Function;
}
使用Object.prototype.toString
利用对象的原型链方法获取精确类型:
function isFunction(value) {
return Object.prototype.toString.call(value) === '[object Function]';
}
兼容性更强的实现
对于旧版浏览器或特殊环境(如iframe),可能需要更健壮的检查:
function isFunction(value) {
return typeof value === 'function' ||
(value && typeof value === 'object' &&
Object.prototype.toString.call(value) === '[object Function]');
}
注意事项
- 箭头函数、生成器函数、异步函数等都会被识别为函数类型。
- 某些环境(如Node.js的
Buffer)可能存在特殊行为,建议优先使用typeof方案。
以上方法可根据具体需求选择,typeof方案在大多数现代场景下已足够可靠。







