javascript代码实例教程-对jQuery.isArray方法的分析

发布时间:2019-01-22 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-对jQuery.isArray方法的分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 jQuery.isArray方法应于判断是不是数组,是的话返回true,否则返回false。调用如:jquery.isArray([]),返回true。其实现码如下:

 

isArray: Array.isArray || function( obj ) {

    return jQuery.tyPE(obj) === "array";

}

我们看到它的主要逻辑是先看浏览器支不支持Array.isArray方法,如果不支持则调应jQuery自己的jQuery.type方法,看其返回值是不是"array"。

 

firefox、chrome、IE9及以上的浏览器都支持Array.isArray方法。其它浏览器就需要jQuery.type的帮忙了,jQuery.type的源码如下:

 

复制代码

type: function( obj ) {

    if ( obj == null ) {

        return obj + "";

    }

    return typeof obj === "object" || typeof obj === "function" ?

        class2type[ toString.call(obj) ] || "object" :

        typeof obj;

}

复制代码

代码中的if好理解,如果传入的null则返回“null”字符串。

 

return 后面的代码结构上看起来比较乱。我们整理如下:

 

return ( typeof obj === "object" || typeof obj === "function" )  ? ( class2type[ toString.call(obj) ] || "object" ) : typeof obj;

现在清楚多了,它是判断( typeof obj === "object" || typeof obj === "function" )的值是不是真,如果是真则返回 ( class2type[ toString.call(obj) ] || "object" ),反之则返回 typeof obj。

 

所以当传入的是字符串,数字,undefined的时直接返回 typeof obj。当传入的是对象、数组、函数时则直接返回 ( class2type[ toString.call(obj) ] || "object" )。现在主要看看class2type[ toString.call(obj) ]的实现:

 

VAR class2type = {};

var toString = class2type.toString;

jQuery.each("Boolean Number String Function Array Date RegExp Object Error".splIT(" "), function(i, name) {

    class2type[ "[object " + name + "]" ] = name.toLowerCase();

});

jQuery定义了class2type的一个对象,并将其初始化为如下的格式:

 

复制代码

{

    "[object Array]" : "array",

    "[object Boolean]" : "boolean",

    "[object Date]" : "date",

    "[object Error]" : "error",

    "[object Function]" : "function",

    "[object Number]" : "number",

    "[object Object]" : "object",

    "[object RegExp]" : "regexp",

    "[object String]" : "string"

}

复制代码

toString方法的返回值正好是class2type对象的key值。所以class2type[ toString.call(obj) ]正好得到我们需要的返回类型字符串。

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-对jQuery.isArray方法的分析全部内容,希望文章能够帮你解决javascript代码实例教程-对jQuery.isArray方法的分析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。