哪一個更好的方法,以找到一個變量的類型是否爲函數的找到變量的更好方法是函數?
typeof(methodName) == typeof(Function)
或
typeof methodName === 'function'
哪一個更好的方法,以找到一個變量的類型是否爲函數的找到變量的更好方法是函數?
typeof(methodName) == typeof(Function)
或
typeof methodName === 'function'
這是較好的方法
if (typeof methodName === 'function') {
// Do your stuff
}
通常的解決方案中,其中一個你會發現,例如在jQuery源代碼(example),是第二個:
typeof value === 'function'
它比第一速度更快,因爲你不需要調用第二typeof
,只是我們沒有理由使用第一個爲ECMAScript specifies that it has to be "function":
有兩件事情怎麼回事:
typeof
是一個運營商,而不是一個功能,不使用它們'function'
或typeof Function
比較(除非有人在旋轉並覆蓋原生對象,否則將始終返回'function'
)。使用字符串,它需要較少的工作,並且不受上述的擰緊。即使用:
typeof methodName === 'function'
第二個具有更好的性能並且在許多使用JavaScript庫
@dystroy在說明第一個有更好的性能之前有一個評論..我想他刪除了評論以及他的答案。他在他的[小提琴](http://jsfiddle.net/RienNeVaPlus/ysuAs/2/) – C5H8NNaO4
@ C5H8NNaO4中通過錯誤代碼導致了結論,這很清楚,我想知道。 –
下面有一個[JSPerf](http://jsperf.com/typeof-string -vs-typeof)用一些方法來確定一個變量是否是''「function」的類型' – C5H8NNaO4