jquery中的class2type

初看jquery源码的时候有一个方法引起了我的注意

jQuery.extend = ({

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

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

  }

})

然后我们再去看jQuery方法的定义:
jQuery.extend = ({

  type:function(obj){

    if(obj == null)

      return obj+";";

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

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

    type obj;

  }

});(简直太佩服写出jquery的这帮人了,在这里面type这个方法里面对与typeof的用法和对于返回值的理解简直堪称经典)

这里有出现了class2type这个对象(或者数组),再去看class2type的声明:

var class2type = {};

var toString = class2type.toString;

var hasown = class2type.hasOwnProperty;

看到这里我们又会产生疑问class2type这个对象中到底有什么属性,

好再看如下代码:

jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
    class2type[ "[object " + name + "]" ] = name.toLowerCase();
});

这样就彻底明白了。至于jQuery.each的这样的写法,以及each方法的定义我想大家还是自己研究一下吧。

转载于:https://www.cnblogs.com/kangccb/p/4387225.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值