我就想看看自己js学到什么程度然后让自己对jquery方法有更深的印象就“作死着”去看了看jquery,毕竟都说其编码结构很nb…
目前还只看到前面一部分,基本是在jquery构造方法下 定义了一些变量和方法。
然后发现 merge() 和 pushstack() 出现多次,然后就去看了这两个方法,相信对大家也会很有用的。
/**** 这个代码其实很容易理解,就是把第二个对象的属性附加到第一个上去, 其实就是返回一个合并后的数组 ***/ merge: function( first, second ) { var len = +second.length, j = 0, i = first.length; for ( ; j < len; j++ ) { first[ i++ ] = second[ j ]; } first.length = i; return first; }
/**** 来到pushstack函数,其作用是将一个dom元素集合加入到jquery栈。 这里需要讲一下*this.constructor()*其实就是jquery的构造函数init,所以this.constructor()返回一个jquery对象,将当前元素elems通过merge方法合并,完成入栈。并且在ret上添加了prevobject属性,使得上一个对象得以保存,可以通过对象的prevobject属性去到上一级对象。 ***/ pushstack: function( elems ) { var ret = jquery.merge( this.constructor(), elems ); ret.prevobject = this; return ret; }
/*当找到匹配元素时将其放入堆栈,否则返回空对象**/ eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); return this.pushstack( j >= 0 && j < len ? [ this[ j ] ] : [] ); }
如对本文有疑问, 点击进行留言回复!!
vue脚手架安装以及vue脚手架创建项目(详细步骤),看这篇文章就行了,小白也能创建自己的项目
JavaScript递归函数详解:如何使用递归及简单的递归案例
JavaScript 中的break、continue、return的用法和区别
网友评论