JavaScript函数是对象吗?

时间:2016-10-28 13:55:40

标签: javascript function object typeof

如果JavaScript函数是第一类对象,因此类型为object,为什么会发生以下情况?

function hello(){}
typeof hello -> function

不应该给出

typeof hello -> object

3 个答案:

答案 0 :(得分:3)

是的,JavaScript函数是对象。 JavaScript中唯一的基类型是原始值类型:数字,符号,布尔值,空值,未定义以及字符串和对象。

不是原始值类型的所有东西都是对象。 typeof由于其他原因而被破坏,例如typeof null是"对象"但是null实际上不是一个对象。

typeof hello返回函数,因为它可能是确实可以将某些东西称为函数的唯一方法。

答案 1 :(得分:1)

在Javascript中,如果它不是原语,那么它就是一个对象。不幸的是,在使用{时,javascript在数组,函数和null之间的区别不大{1}}运算符,但有一些方法可以使用typeof

来判断

以下是一个例子:



Object.prototype.call()




答案 2 :(得分:0)

虽然Javascript函数是对象,但数字,字符串等也是对象.typeof函数可以让你知道对象是Javascript已经知道的特定数据结构,并返回对象,如果它不是#&# 39;知道(但仍然定义/非空)。

此处有更多相关内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof