在判断函数类型时,我们通常使用typeof方法,一般情况下,它会得到我们所预想的效果。但是,有一些细节并不为我们所熟知。John
Resig
在分析了这些细节之后,为我们提供了一个完美的解决方案,本文将作详细介绍: 一、传统方法不为人所知的细节 毫无疑问,在判断函数类型时,我们使用的是typeof方法,比如:
1、Firefox2和Firefox3 在这两个浏览器中,用typeof检测HTML对象元素的类型,得到是一个不精确的“function”结果,而不是“object”,如HTMLDocument。如:
对于正则表达式,在该浏览器中返回的结果是“function”(在Firefox3中结果是“object”),如:
3、IE6和IE7 在IE中对DOM元素使用typeof方法,得到的结果是“object”。如:
safari认为DOM元素的NodeList是一个函数,如:
alert(typeof?document.getElementsByTagName("body")[0].getAttribute.call) //在IE中结果是"undefined" 显然,我们不能利用这两个方法。 二、完美解决方案及实现过程 John Resig为我们提供了一个完美的解决方案,这个复杂但很稳定的判断一个对象是否为函数的方法如下:
John Resig 是jQuery库的开发者,相信使用该库的朋友们对该库简洁的语法和优秀的性能并不陌生。作者除追求代码简洁和性能高效之外,其尽善尽美的精神也让人叹服。如果你是一个完美主义者,相信此文对你很有帮助。 |
详细解决方案
JavaScript函数门类判断完美解决方案
热度:109 发布时间:2012-11-08 08:48:11.0
相关解决方案
- javascript ie6兼容的有关问题
- javascript window open在ie中设立不起作用,求解决
- xml/xslt 变量自增。解决方案
- DB2 调用java自定义方法报错,请大牛帮忙~解决方案
- 关于request.getParameterValues()解决方案
- javascript 字符串拼接效率有关问题
- 一个JSP页面,在NETBEANS里报错!解决方案
- WEB环境javamail取不到pop3邮件,解决方案
- JavaScript 自动生成图片并合并有关问题
- 急来者有分,晚了就没了!解决方案
- 不走"<script type='text/javascript'>"标签咋回事
- disable在IE8中可以接收焦点了?解决方案
- 求网页采集器的正则表达式。解决方案
- 关于FckEdit。解决方案
- 在Struts2 如果有多个拦截器栈顺序写错会有什么不同?解决方案
- servlet+jquery1.4.2(ajax error?)解决方案
- <script type="javascript/text">的有关问题
- 关于el 《c:if》。解决方案
- jsp、taglib、velocity、freemarker等都过时了吗?解决方案
- 用servlet+jsp+javascript+jdbc做个简单的办公自动化系统流程,该如何解决
- 有开发过CA认证的朋友,帮个忙!解决方案
- com.microsoft.sqlserver.jdbc.SQLServerException: 列名 n_id 无效。解决方案
- java 缓冲区读写操作,求解?解决方案
- EXTJS中treepanel树内部机制?解决方案
- 一个数学题,求个算法。解决方案
- 怎么打开 javascript:SetData(2010,5,10)
- java 大文件上传?解决方案
- 从JSP中得到访问者的真实IP(很急)!解决方案
- 高分求解!解决方案
- java可以跟PHP对接吗?解决方案