还是拆解第一次jQuery.extend, 这次阅读json和xml相关的解析
除了这一波 , 工具函数里还有proxy,access,和ready没读
ready用到了jQuery的队列处理, 打算读完Deferred那块再拆解
这对转换用正则比较多, 今天应该还有点儿时间, 打算补一补正则
还是拆解第一次jQuery.extend, 这次阅读json和xml相关的解析
除了这一波 , 工具函数里还有proxy,access,和ready没读
ready用到了jQuery的队列处理, 打算读完Deferred那块再拆解
这对转换用正则比较多, 今天应该还有点儿时间, 打算补一补正则
剩这仨数组操作都稍微有点儿绕:
第一次jQuery.extend中, 有不少工具函数,
这次拆解一下字符串操作 和 头几个数组操作
isPlainObject这个方法比较深, 因为对象的组合方式太灵活了 , 原型链我理解也不到位(下篇博文一定得学习一下), 兼容性有关的东西又太多了, 而且”纯对象”这东西太抽象
这篇博客里存疑比较多 , 先把能看懂的星系简单记一下, 以后返工是肯定的了…
从这个函数学到好些东西:
1.DOMObj.nodeType : Dom对象才有这个属性(IE低版本里没有), 比如说body是1
2.for in 遍历的顺序 : 结论是先遍历父类属性, 后遍历子类属性
3.hasOwnProperty只查询实例的属性, isPrototypeOf会查询原型链上constructor的指向(可以查询多层)
js里类型判断是个比较麻烦的事儿,
原生的api不够准确 , 比如typeof 来判断数据类型,只能区分基本类型”number”,”string”,”undefined”,”boolean”,”object”实测再加上”function”, 太过笼统
所以jQuery自己弄了个type()方法来返回具体类型 , 源码里调用了n多次 应该算是个比较重要的工具函数了
类型判断是个比较大的话题,一回说不清楚, 慢慢拆 慢慢看
还是先看用法:
1.each有俩形式, 一是$.each的静态方法, 二是$(“XX”).each的原型方法.
内部实现是一份代码, $(“XX”)each会经过选择器包装对象, 而后调用$.each静态方法
2.具体实现上 each会处理两种情况, 一是处理对象, 二是处理数组类数组
都是callback.call( each内部遍历的当前项也就是替换this指针项, key, value )
3.$.each静态方法, 对于内部调用 接收第三个参数, 这个参数用于callback.apply, 其余和第2点一样
jQuery对象生成出来了, 下一步就是往里加方法 , 主要用的是extend()方法:
还是拆一下代码, 仅分析最简单的流程, 说明下工作原理.
最近比较忙, 不过还是想看看jQuery源码.
晚上大概翻了一下 好多看不懂的…
试着拆解一下 希望在博客里强制自己叙述出来 能稍微多看懂一点点.