sis*_*onb 17 javascript underscore.js
我正在阅读该_.isFunction()函数的源代码,并看到了这一行:
if (typeof (/./) !== 'function') {
Run Code Online (Sandbox Code Playgroud)
我不明白为什么会这样././是一个似乎总是有类型的正则表达式object.为什么不会_.isFunction被重新定义,如果/./类型是function?
Jon*_*ski 16
某些版本的各种JavaScript引擎允许调用 RegExp另一种使用方式.exec():
var pattern = /./;
pattern('abc');
pattern.exec('abc');
Run Code Online (Sandbox Code Playgroud)
并且,因为它们是可调用的,所以typeof认为它们function是:
val的类型:对象(本机或主机,并实现[[Call]])
结果:"function"
据我所知,当前版本不会出现这种行为,并会抛出一个TypeError.但是,如果你关注向后兼容性,就像Underscore一样,你可能需要检查它.
| 归档时间: |
|
| 查看次数: |
343 次 |
| 最近记录: |