2014-05-13 44 views
3

我需要的,如果是一个函数来检查JS对象,我认为这个代码应该这样做:的JavaScript(_.isFunction)代码优化

typeof param === 'function'

然后我以为跟_.isFunction源码检查将是一个很好的理想。

下划线有if下面包裹上述检查,我不知道究竟是什么意思或意思。如果有人能解释,这将是伟大的。由于

// Optimize `isFunction` if appropriate. 
if (typeof (/./) !== 'function') { 
    .. 
} 

回答

5

在一些旧版本的V8,正则表达式的对象有一个类型的"function"(最初,正则表达式对象是可调用的功能,即使没有人使用该功能)。

这就是为什么无法使用typeof param === 'function'来检查值是否为函数的原因。

现在情况并非如此。使用typeof,而不是_.isFunction,此代码已过时。