冠军

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

jQuery1.3.2 源码学习-6 size 和 get 函数

96 // Start with an empty selector

97 selector: "",

98

99     // The current version of jQuery being used

100    jquery: "1.3.2",

101

102 // The number of elements contained in the matched element set

103 size: function() {

104    return this.length;

105 },

106

107 // Get the Nth element in the matched element set OR

108 // Get the whole matched element set as a clean array

109 get: function( num ) {

110    return num === undefined ?

111

112        // Return a 'clean' array

113        Array.prototype.slice.call( this ) :

114

115        // Return just the object

116        this[ num ];

117 },

 

97 行开始,一直到 538 行,定义了 jQuery 对象所共享的方法和属性。

 

97 行在对象上定义了一个属性 selector,用来表示当前使用的选择器

110 行在对象上定义了一个属性 jquery,表示当前的 jQuery 版本

103 行定义了 jQuery 对象的 size 方法,由于 jQuery 对象就是一个仿数组的对象,所以直接返回对象的 length 属性,就是查询结果中的对象数量。

 

109 行到 117 行,定义了 get 方法,用来返回指定下标的查询对象。

其中 110 行用来判断是否传递了下标参数,如果传递了下标参数,那么参数 num 就不等于 undefined,注意,这里使用了 === 用来判断是否完全相等。

如果传递了参数,那么在 116 行通过属性索引器 [] 来获取指定下标的对象。

如果没有传递参数,那么使用第 113 行处理。

113 行首先通过 Array.prototype 找到 Array 的原型对象,因为数组的方法都是通过这个原型对象提供的。然后,调用这个原型对象上的 slice 方法,调用这个方法的时候还使用了 call,用来将第一个参数作为方法的 this 参数传入,也就是取得当前查询结果对象上,数组的 slice 可以传递两个参数,第一个参数表示起始下标,第二个参数表示结束下标,如果两个都没有提供,那么起始下标就是 0, 结束下标就是 lengthSlice 将返回从起始下标到结束下标 – 1 的所有属性,并将结果封装为一个新的真正的数组对象。

 

posted on   冠军  阅读(616)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示