end 방법

1494 단어
각 jQuery 객체에는 context, selector, prevObject 세 가지 속성이 있습니다.

end 방법

return this.prevObject || this.constructor();

pushStack 메서드

pushStack = function( elems ) {
  var ret = jQuery.merge( this.constructor(), elems );
  ret.prevObject = this;
  return ret;
}
  • this.constructor 방법jQuery을 가리키기 때문에 새로운 대상을 만들 수 있습니다
  • 요소를 새 jQuery 대상에 통합하고 이전의this를 prevObject
  • 에 연결합니다

    내부적으로 pushStack을 사용하는 방법

    find을 예로 들면 not, filter
    find = function( selector ) {
        var i, ret,
            len = this.length,
            self = this;
        //    , 
            //     pushStack, jQuery 
        if ( typeof selector !== "string" ) {
            return this.pushStack( jQuery( selector ).filter( function() {
                // this   DOM  
                for ( i = 0; i < len; i++ ) {
                    //  ,container , contained
                    if ( jQuery.contains( self[ i ], this ) ) {
                        return true;
                    }
                }
            } ) );
        }
    
        ret = this.pushStack( [] );
            for ( i = 0; i < len; i++ ) {
            //  jQuery.find = Sizzle
            //  ,selector, context, results, seed
            //   results   ret, ret 
            //  
            jQuery.find( selector, self[ i ], ret );
        }
        //  , 
        return len > 1 ? jQuery.uniqueSort( ret ) : ret;
    } 
    

    좋은 웹페이지 즐겨찾기