jQery每一个方法都有对应代码解析,非常详细,具有介绍请看下文:
isFunction方法
用于测试是否为函数的对象
示例:
运行结果:
源码分析:
<div class="jb51code">
<pre class="brush:js;">
// See test/unit/core.js for details concerning isFunction.
// Since version 1.3,DOM methods and functions like alert
// aren't supported. They return false on IE (#2968).
isFunction: function( obj ) {
return jQuery.type(obj) === "function";
},
首先就告诉你自从1.3版本就有bug,一些dom方法和函数例如alert在ie里面会返回false,看了下这个bug,因为toString方法和valueOf方法都会被重写所以有人就提出了用instanceof方法检测但是在ie6还是有问题。目前为止这个bug还没有关闭具体大家可以从参考官网bug页因为我分析的是1.7.1所以就先按照这个版本来,这个方法就是简单的调用type方法判断其返回结果是否为字符串function
isArray方法
用于测试是否为数组的对象
示例:
<div class="jb51code">
<pre class="brush:js;">
$("b").append( " + $.isArray([]) );//true
isArray: Array.isArray || function( obj ) {
return jQuery.type(obj) === "array";
},