jQuery 1.6 源码学习(五)——core.js[5]之类型判断方法type
2012-02-08 15:12
776 查看
前些日子忙东忙西(比如忙着玩星际之类的,坏笑ing),博客也闲着,闲着闲着居然闲挂掉了~哎~没关系,反正这博客也是我的私人笔记 本,没人看,也就无所谓,昨天刚刚恢复,想起得接着记笔记才行。废话少说,万一本文还有读者借鉴学习呢就浪费看官们的宝贵时间了,\(^o^)/~
在历经四次分析之后,core.js文件中只剩下了零零星星一些方法,我把它们大致分为以下几类方法:
类型判断相关方法,如isFunction,isArray等;
对象操作相关方法,如merge,map等;
实用工具方法,如parseJSON,parseXML等;
其他内部方法,如access。
本文将介绍判断类型相关的方法
jQuery中公开了一组判断类型的方法,诸如isArray(),isFunction()等,这些方法的实现是通用的,比如isArray和isFunction方法:
它们均调用了type()方法:
而class2type被声明为jQuery内部的全局对象,其赋值代码是:
看起来很绕弯儿,难道作者这样写是为了节省代码量?也可能是方便维护吧,比如万一javascript新标准更改类型名了或者作者想把所有类型改为大写输出了代码改起来要方便一些吧。好吧,其实这都不是事儿,只要理解了jQuery中是如何判断类型的就行了。
这组类型相关的方法作为jQuery内的基础方法存在,出现在了jQuery的各个地方,因此我将它们单独拿出来撰文。
在历经四次分析之后,core.js文件中只剩下了零零星星一些方法,我把它们大致分为以下几类方法:
类型判断相关方法,如isFunction,isArray等;
对象操作相关方法,如merge,map等;
实用工具方法,如parseJSON,parseXML等;
其他内部方法,如access。
本文将介绍判断类型相关的方法
jQuery中公开了一组判断类型的方法,诸如isArray(),isFunction()等,这些方法的实现是通用的,比如isArray和isFunction方法:
1 | isArray: Array.isArray || function ( obj ) { |
2 | return jQuery.type(obj) === "array" ; |
3 | }, |
4 | isFunction: function ( obj ) { |
5 | return jQuery.type(obj) === "function" ; |
6 | }, |
1 | type: function ( obj ) { |
2 | return obj == null ? |
3 | String( obj ) : //obj为null时将会返回字符串“null” |
4 | class2type[toString.call(obj) ] || "object" ; //注意toString是Object.prototype.toString的一个shortcut |
5 | }, |
1 | jQuery.each( "Boolean Number String Function Array Date RegExp Object" .split( " " ), function (i, name) { |
2 | class2type[ "[object " + name + "]" ] = name.toLowerCase(); |
3 | }); |
这组类型相关的方法作为jQuery内的基础方法存在,出现在了jQuery的各个地方,因此我将它们单独拿出来撰文。
相关文章推荐
- jQuery 1.6 源码学习(二)——core.js[2]之extend&ready方法
- jQuery 1.6 源码学习(六)——core.js[6]之jQuery对象/数组操作相关方法
- jQuery 1.6 源码学习(七)——core.js[7]之实用工具方法(Utilities)
- jQuery 1.6 源码学习(三)——core.js[3]之init方法
- jQuery 1.6 源码学习(一)——core.js[1]之基本架构
- jQuery 1.6 源码学习(四)——core.js[4]之链式调用&隐式迭代
- jQuery源码分析之数据类型判断方法——$.type()
- 原型(prototype)相关方法,jquery类型判断源码分析。
- 如何判断js中的数据类型:typeof、instanceof、 constructor、 prototype方法比较
- js/jquery判断浏览器类型的方法小结
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
- js判断对象类型 typeof与Object.prototype.toString.call方法的区别
- js判断操作系统、判断浏览器类型、判断数据类型权威方法--extjs源码
- 源代码阅读方法 jQuery源码解析 核心模块core.js
- js/jquery判断浏览器类型的方法小结
- js/jquery判断浏览器类型的方法小结
- jquery源码之属性判断-$.type类型
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
- jQuery javaScript js 判断浏览器的类型、版本的方法
- 判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解