【jQuery-1.7.2源码分析】extend
2013-04-14 17:04
489 查看
jQ的扩展分两种
1. 把相对紧凑的方法统一在一处,因此,在内部写法上看起来是一个个的模块,这样便于维护。其中分为两类:
1) 基于jQuery这个对象,也就是静态属性/方法的作用,这部分的扩展更为通用,比如 attr: function( elem, name, value, pass ),脱离jQ对象也可以使用
2) 基于 prototype 的,内部大多只是借用了静态属性/方法
2. 当作工具方法
如需要给obj = {a:1, b:2}对象加几个属性,就直接obj = jQuery.extend(obj, {})
这部分没啥好说的,就一个方法,而且不长,我不打算贴原版代码,因为我觉得凡是jQ的写法都要批判着看,它的确功能强大,但不代表连带它的代码风格都要推广。
下面给出我的版本,如果需要原版,请自行下载。
?
技巧:
1. 数组也可以用for in,这时 key 是数组索引
?
注意:关于 for in 是否有序,参考 w3help。
只要 object 的 key 没有数字,遍历顺序和定义顺序是相同的;
如果有数字,会先把数字排好序,然后才是非数字部分,遍历顺序也是先数字,后非数字
1. 把相对紧凑的方法统一在一处,因此,在内部写法上看起来是一个个的模块,这样便于维护。其中分为两类:
1) 基于jQuery这个对象,也就是静态属性/方法的作用,这部分的扩展更为通用,比如 attr: function( elem, name, value, pass ),脱离jQ对象也可以使用
2) 基于 prototype 的,内部大多只是借用了静态属性/方法
2. 当作工具方法
如需要给obj = {a:1, b:2}对象加几个属性,就直接obj = jQuery.extend(obj, {})
这部分没啥好说的,就一个方法,而且不长,我不打算贴原版代码,因为我觉得凡是jQ的写法都要批判着看,它的确功能强大,但不代表连带它的代码风格都要推广。
下面给出我的版本,如果需要原版,请自行下载。
?
技巧:
1. 数组也可以用for in,这时 key 是数组索引
?
只要 object 的 key 没有数字,遍历顺序和定义顺序是相同的;
如果有数字,会先把数字排好序,然后才是非数字部分,遍历顺序也是先数字,后非数字
相关文章推荐
- 【jQuery-1.7.2源码分析】extend
- jQuery.extend()方法和jQuery.fn.extend()方法源码分析
- jQuery.extend()方法和jQuery.fn.extend()方法源码分析
- jquery源码分析之扩展函数 extend, $.extend
- Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)
- Javascript笔记:(实践篇)从jQuery插件技术说起-分析extend方法的源码(发现extend方法里有bug)(下篇)
- jquery源码分析之扩展函数 extend, $.extend
- jQuery源码分析以及从jQuery对象创建的角度理解extend方法的原理
- jQuery源码分析系列:Extend扩展方法
- jQuery源码分析之extend方法
- jQuery源码研究分析学习笔记-jQuery.extend()、jQuery.fn.extend()(八)
- Javascript笔记:jQuery源码分析以及从jQuery对象创建的角度理解extend方法的原理
- jquery 源码分析-核心(2)整个骨架jQuery.extend,jQuery.fn.extend
- jQuery中extend()源码分析
- 【jQuery-1.7.2源码分析】jQuery对象
- jQuery 源码分析4: jQuery.extend
- jQuery 2.0.3 源码分析 数据缓存
- Jquery源码 基础分析
- JQuery 源码分析 -1
- 菜鸡看jquery源码(3)extend