美文网首页jQuery源码笔记.jpg
jQuery源码 仿栈与队列的操作

jQuery源码 仿栈与队列的操作

作者: 柠檬果然酸 | 来源:发表于2020-04-15 22:40 被阅读0次

    本节内容
    1.get()
    2.eq()
    3.slice()

    jQuery既然是模仿的数组结构,那么肯定会实现一套类数组的处理方法,比如常见的栈与队列操作push、pop、shift、unshift、求和、遍历循环each、排序及筛选等一系的扩展方法。

    jQuery提供了.get()、:index()、 :lt()、:gt()、:even()及 :odd()这类索引值相关的选择器,他们的作用可以过滤他们前面的匹配表达式的集合元素,筛选的依据就是这个元素在原先匹配集合中的顺序。

    get()
    获取指定某个元素,该方法如果不传入任何参数就是将jQuery转换成数组返回。

    get: function( num ) {
    
        // Return all the elements in a clean array
        if ( num == null ) {
            return slice.call( this );
        }
    
        // Return just the one element from the set
        return num < 0 ? this[ num + this.length ] : this[ num ];
    }
    

    eq()
    作用和get()方法一样,唯一的区别就是eq返回的是一个jQuery对象,get返回的是一个DOM对象。

    eq: function( i ) {
        var len = this.length,
            j = +i + ( i < 0 ? len : 0 );
        return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );
    }
    

    slice()
    Query的考虑很周到,通过eq方法只能产生一个新的对象,但是如果需要的是一个合集对象要怎么处理?因此jQuery便提供了一个slice方法。

    slice: function() {
        return this.pushStack( slice.apply( this, arguments ) );
    }
    

    相关文章

      网友评论

        本文标题:jQuery源码 仿栈与队列的操作

        本文链接:https://www.haomeiwen.com/subject/sngddhtx.html