📌  相关文章
📜  检查一个对象是否是一个函数? - Javascript(1)

📅  最后修改于: 2023-12-03 15:26:44.392000             🧑  作者: Mango

如何检查一个对象是否是一个函数 - JavaScript

在 JavaScript 中,有多种方法可以检查一个对象是否是一个函数。在本文中,我们将介绍这些方法并提供相应的代码示例。

检查对象类型

首先,我们可以使用 JavaScript 的内置 typeof 操作符来检查一个对象是否是一个函数。如果返回值为 "function",则该对象是一个函数。

function myFunc() {
  // function body
}

console.log(typeof myFunc); // "function"
console.log(typeof {}); // "object"

然而,typeof 操作符并不总是可靠的,因为它不能区分函数和其他对象类型(例如对象和数组)之间的差异。因此,我们需要使用其他方法。

使用 instanceof 操作符

JavaScript 中的 instanceof 操作符可以检查一个对象是否是某个函数的实例。如果返回值为 true,则该对象是该函数的实例。

function myFunc() {
  // function body
}

console.log(myFunc instanceof Function); // true
console.log({} instanceof Function); // false

请注意,instanceof 操作符只能检查一个对象是否是实例化的函数,而不能检查纯函数本身。

使用 Object.prototype.toString 方法

另一种检查对象是否是一个函数的方法是使用 JavaScript 的内置 Object.prototype.toString 方法。该方法返回一个对象的字符串表示形式。如果返回值为 "[object Function]",则该对象是一个函数。

function myFunc() {
  // function body
}

console.log(Object.prototype.toString.call(myFunc)); // "[object Function]"
console.log(Object.prototype.toString.call({})); // "[object Object]"
结论

在 JavaScript 中,检查一个对象是否是一个函数有多个方法。推荐的方法是使用 instanceof 操作符,因为它更可靠且更清晰地表达了意图。然而,Object.prototype.toString 方法是另一个可行的选择,可以用于更复杂的对象类型。