当前位置:首页 > JavaScript

js .isfunction 实现

2026-04-06 14:31:48JavaScript

在 JavaScript 中,可以通过多种方式实现类似 isFunction 的功能来检测一个变量是否为函数类型。以下是几种常见的实现方法:

使用 typeof 操作符

typeof 操作符是检测函数类型的最简单方法。函数在 JavaScript 中被归类为对象,但 typeof 可以区分函数和其他对象类型。

function isFunction(obj) {
    return typeof obj === 'function';
}

使用 instanceof 操作符

instanceof 操作符可以检查对象的原型链中是否存在 Function 构造函数。这种方法适用于检查显式定义的函数。

function isFunction(obj) {
    return obj instanceof Function;
}

使用 Object.prototype.toString

Object.prototype.toString 方法可以返回对象的类型字符串,对于函数会返回 [object Function]

function isFunction(obj) {
    return Object.prototype.toString.call(obj) === '[object Function]';
}

使用 Function.prototype.isPrototypeOf

Function.prototype.isPrototypeOf 可以检查对象的原型链中是否包含 Function.prototype

function isFunction(obj) {
    return Function.prototype.isPrototypeOf(obj);
}

注意事项

  1. 箭头函数:上述方法对箭头函数同样有效,因为箭头函数也是 Function 的实例。
  2. 跨框架问题:在多个 iframe 或窗口环境中,instanceof 可能会失效,因为每个环境有独立的 Function 构造函数。此时推荐使用 typeofObject.prototype.toString
  3. 性能typeof 的性能通常最好,因为它是语言内置的直接操作。

示例代码

以下是一个综合示例,展示如何使用这些方法检测函数:

js .isfunction 实现

const func = () => {};
const notFunc = {};

console.log(typeof func === 'function'); // true
console.log(func instanceof Function); // true
console.log(Object.prototype.toString.call(func) === '[object Function]'); // true
console.log(Function.prototype.isPrototypeOf(func)); // true

console.log(typeof notFunc === 'function'); // false
console.log(notFunc instanceof Function); // false

选择哪种方法取决于具体需求,大多数情况下 typeof 已经足够。

标签: jsisfunction
分享给朋友:

相关文章

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…