> 웹 프론트엔드 > JS 튜토리얼 > jQuery 연구 노트 jQuery.extend(), jQuery.fn.extend() analyze_jquery

jQuery 연구 노트 jQuery.extend(), jQuery.fn.extend() analyze_jquery

WBOY
풀어 주다: 2016-05-16 16:45:28
원래의
1292명이 탐색했습니다.

다음과 같이 jQuery에 확장을 추가할 때 $.extend()를 사용하세요. jQuery.extend({add:function(a,b){return a b}})


사용:$.add(1,3)=====>4;

jQuery 인스턴스 객체에 확장을 추가할 때 $.fn.extend();

를 사용하세요.

$.fn.extend({gys:function(){$(this).css("color","red")}});

전화:$("div.guo").gys();

매개변수 개수가 불확실하기 때문에 구체적인 허용 매개변수는 기재하지 않았습니다.

옵션: 특정 소스 객체를 가리킵니다.

name: 특정 소스 객체의 특정 속성 이름.

src: 대상 객체의 특정 속성의 원래 값
a. 특정 소스 개체
copyIsArray: 복사본이 배열인지 여부를 나타냅니다.
clone: ​​전체 복사 중 원본 값의 수정 값
target: 대상 개체입니다. i: 소스 객체의 시작 첨자.
length: 변수 target을 수정하는 데 사용되는 매개변수의 수.
deep: 전체 복사 수행 여부


333~338: 첫 번째 매개변수가 Boolean 값인 경우 대상을 deep에 할당합니다. 대상은 값을 다시 구하고 두 번째 매개변수를 대상에 할당합니다. 처음에는 1에서 2로 변경됩니다. 이는 원본 객체가 원래 두 번째 요소에서 시작하여 이제 세 번째 요소가 된다는 의미입니다. 327줄의 코드와 결합된 이 코드를 보면 왜 이런 일이 발생하는지 알 수 있습니다. 명령문. 확장이 실행되면 매개 변수에 관계없이 먼저

에 값을 할당한 다음 나중에 수정합니다.

341~343: 대상 객체 target이 객체나 함수가 아닌 경우 target={};

346~349: 길이가 i와 같다면 objcet1,... 등의 매개변수가 전달되지 않는다는 의미입니다.
이때 이 현재 객체(jQuery 또는 jQuery.fn)는 다음과 같이 사용됩니다. i는 1 감소합니다. 따라서 전달된 객체는 소스 객체로 처리됩니다.


351행은 루프를 시작합니다. i는 시작 소스 객체의 첨자를 나타내며 이는 매우 영리한 사용법입니다.

353행도 훌륭합니다. 소스 객체의 획득과 소스 객체의 판단을 넣습니다. 한 문장에서는 소스 객체가 비어 있지 않은 경우에만 실행됩니다.

354~362행에서 src 변수는 원본 값이고, copy 변수는 대상 참조와 복사 참조가 동일한 경우입니다. , 순회 중에 무한 루프가 발생하므로 동일한 이름을 가진 대상 객체의 속성을 덮어쓰게 됩니다. 360행을 주석 처리하면 다음 코드에서 예외가 발생합니다.

={};

obj.n1=obj;
$.extend(true,obj, {n2:obj});
다른 오류 보고서는 브라우저마다 다르지만 예외 없이 화면이 나타납니다. 오랫동안 얼려주세요.

365~372행, 완전 병합이고 복사 복사본이 일반 자바스크립트 객체 또는 배열인 경우 재귀적으로 병합합니다.
378~380행, 완전 병합이 아닌 경우 복사본입니다. 정의되지 않은 경우 대상 개체는 동일한 이름의 속성을 직접 덮어쓰게 됩니다.

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿