我正在阅读该_.isFunction()
函数的源代码并看到了这一行:
if (typeof (/./) !== 'function') {
我不明白为什么它在那里。/./
是一个似乎总是具有类型的正则表达式object
。如果type 是 a ,为什么不_.isFunction
重新定义?/./
function
我正在阅读该_.isFunction()
函数的源代码并看到了这一行:
if (typeof (/./) !== 'function') {
我不明白为什么它在那里。/./
是一个似乎总是具有类型的正则表达式object
。如果type 是 a ,为什么不_.isFunction
重新定义?/./
function
各种 JavaScript 引擎的某些版本允许调用 RegExp
作为另一种使用方式.exec()
:
var pattern = /./;
pattern('abc');
pattern.exec('abc');
而且,由于它们是Callable,因此typeof
将它们视为function
s:
val 类型:对象(本机或主机,并实现 [[Call]])
结果:"function"
不过,据我所知,当前版本不会表现出这种行为,并且会抛出TypeError
. 但是,如果您关心向后兼容性,就像 Underscore 一样,您可能需要检查它。