在javascript中检查函数是否为Function类型

时间:2016-03-31 16:59:05

标签: javascript apply

是的,我知道有很多帖子,但我不理解this post的选定答案。特别是,为什么有必要return object

为什么Object.prototype.toString.call(myFunc)之类的内容不足MDN所描述的那样?

2 个答案:

答案 0 :(得分:1)

  

为什么有必要return object

没有必要执行object &&,而是虚假值的快捷方式,可避免方法调用null等值。当然,如果你正在寻找速度,你可能应该选择typeof object == "function"

  

为什么像Object.prototype.toString.call(myFunc)这样的东西不够?

这就足够了。

答案 1 :(得分:0)

return object && getClass.call(object) == '[object Function]'

此结构只会验证object不是null还是undefined(通常是假的)。
这种方式更快,因为JavaScript不会评估假getClass()上的object调用。