>  기사  >  웹 프론트엔드  >  jQuery extend_jquery의 간단한 예

jQuery extend_jquery의 간단한 예

WBOY
WBOY원래의
2016-05-16 17:22:111051검색

코드 복사 코드는 다음과 같습니다.

jQuery.extend = jQuery.fn.extend = function() {
    var options, name, src, copy, copyIsArray, clone,
        target = 인수[0] || {},
        i = 1,
        길이 = 인수.길이,
        deep = false;

    // 전체 복사 상황 처리
    if ( typeof target === "boolean" ) {
        deep = target;
        target = 인수[1] || {};
        // 부울 및 대상 건너뛰기
        i = 2;
    }

    // 대상이 문자열 등인 경우 처리(딥 카피에서 가능)
    if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
        target = {} ;
    }

    // 하나의 인수만 전달되면 jQuery 자체 확장
    if ( length === i ) {
        target = this;
        --i;
    }

    for ( ; i < length; i ) {
        // null이 아닌/정의되지 않은 값만 처리합니다
        if ( (options = 인수[ i ]) != null ) {
            / / 기본 개체 확장
            for ( 옵션의 이름 ) {
                src = target[ 이름 ];
               copy = options[ 이름 ];

               // 끝없는 루프 방지
                if ( target === copy ) {
                  계속;
               }

               // 일반 객체나 배열을 병합하는 경우 재귀
               if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
                   만약 ( copyIsArray ) {
                       copyIsArray = false;
                     clone = src && jQuery.isArray(src) ? 소스 : [];

                   } else {
                       clone = src && jQuery.isPlainObject(src) ? src : {};
                   }

                   // 원본 개체를 이동하지 말고 복제하세요
                   target[ name ] = jQuery.extend( deep, clone, copy );

               // 정의되지 않은 값을 가져오지 마세요
               } else if ( copy !== undefine ) {
                  target[ name ] = copy;
              }
            }
        }
    }

    // 수정된 객체 반환
    return target;
};

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.