大家好,
jquery 1.2.6 中 isFunction 的实现代码里用到了一个奇怪的正则,请教了公司的人还是没人知道。请大家帮忙看看是什么意思。
[code="js"]
// See test/unit/core.js for details concerning this function.
isFunction: function( fn ) {
return !!fn && typeof fn != "string" && !fn.nodeName &&
fn.constructor != Array && /^[\s[]?function/.test( fn + "" );
}
[/code]
那个 ^[\s[]?function 我百思不得其解。
谢谢!
很简单的。
fn+""
强制转换为字符串
这个字符串
必须是funtion开头
或者function前加一个空白字符也行
或者function前是左方括号也行。
除此之外都不行。
ie下测试通过。
估计是什么浏览器兼容的把戏,呵