2014-05-13 83 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,此代碼已過時。