_.isFunction(a)与typeof a ==='function'? JavaScript的
我认为这可能只是性能的情况下 – http://jsperf.com/comparing-underscore-js-isfunction-with-typeof-function/2
而且似乎typeof
更快..所以我的问题是 – 哪个更适合使用?
没有理由不使用typeof
。
它不仅速度更快,而且ECMAScript规范确保所有函数都具有一种“函数”types,并且只有函数可以具有一种“函数”types:
这个运算符是专门devise来获得一个值的types,所以为什么不使用它?
首先,Underscore不再使用这个实现。 它优化typeof
除非typeof /./
返回function
,因为它至less在老版本的Chrome中
你可以在源代码中find它: http : //underscorejs.org/underscore.js
// Optimize `isFunction` if appropriate. if (typeof (/./) !== 'function') { _.isFunction = function(obj) { return typeof obj === 'function'; }; }
新的jsperf: http ://jsperf.com/comparing-underscore-js-isfunction-with-typeof-function/3
它在FF中仍然performance出相当的性能(但是比你在问题中发表的天真的实现less得多),这是由于函数调用的开销而不是内联代码。