JQuery의 확장 메서드:
Jquery의 확장 메서드는 플러그인을 작성할 때 일반적으로 사용되는 메서드입니다. 이 메서드에는 몇 가지 오버로드된 프로토타입이 있습니다.
1. Jquery의 확장 메서드 프로토타입은 다음과 같습니다.
extend(dest,src1,src2,src3...); .dest로 병합되고 반환 값은 병합된 dest임을 알 수 있습니다. 이 방법은 병합 후 dest의 구조를 수정합니다. 병합된 결과를 얻고 싶지만 dest의 구조를 수정하고 싶지 않은 경우 다음과 같이 사용할 수 있습니다.
var newSrc=$.extend({},src1,src2,src3.. .)//즉, 대상 매개변수는 " {}"입니다.
이 방법으로 src1, src2, src3...을 병합한 다음 병합된 결과를 newSrc에 반환할 수 있습니다. 예:
var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})
그러면 병합 후의 결과
result={name:"Jerry",age:21,sex:"Boy"}
즉, 다음 매개변수가 다음과 같다면 이전 매개변수 이름을 사용하면 후자의 매개변수 이름이 이전 매개변수 값을 덮어씁니다.
2. dest 매개변수 생략
위의 확장 메소드 프로토타입에서 dest 매개변수는 생략할 수 있으며,
메소드는 src 매개변수를 하나만 가질 수 있으며 Merge src는 확장 메소드를 호출하는 객체에
예:
1. $.extend(src)
이 메소드는 src를 jquery의 전역 객체에 병합합니다(예:
$ ). extend({
hello:function(){alert('hello');}
}); hello 메소드를 jquery의 전역 객체에 병합하는 것입니다.
2. $.fn.extend(src)
이 메서드는 src를 다음과 같이 jquery 인스턴스 객체에 병합합니다.
$.fn.extend({
hello:function(){ Alert( 'hello');}
})
는 hello 메소드를 jquery 인스턴스 객체에 병합하는 것입니다.
다음은 일반적으로 사용되는 몇 가지 확장 예제입니다.
$.extend({net:{}})
이는 jquery 전역 객체에서 네트를 확장하는 것입니다. 네임스페이스.
$.extend($.net,{
hello:function(){alert('hello');}
})
이는 hello 메소드를 확장하기 위한 것입니다. 이전에 확장된 Jquery net 네임스페이스로 이동합니다.
3. Jquery의 확장 메소드에도 오버로드된 프로토타입이 있습니다.
extend(boolean,dest,src1,src2,src3...)
첫 번째 매개변수 부울은 다른 매개변수는 앞서 소개한 것과 일치합니다.
딥 카피란 무엇인가요? 예를 살펴보겠습니다.
var result=$.extend( true, {},
{ name: " John", 위치: {city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} } );
하위 개체 위치:{city:"Boston"},
가 src1에 중첩되어 있음을 확인할 수 있습니다. 하위 개체 위치:{state:"MA"}도 첫 번째 전체 복사본에 중첩되어 있습니다.
그러면 병합된 결과는 다음과 같습니다.
result={name:"John",last:"Resig",
location:{city:"Boston",state:"MA",county :"China "}}
즉, src에 중첩된 하위 개체도 병합합니다.
그리고 첫 번째 매개변수 부울이 false인 경우
결과가 무엇인지 살펴보겠습니다. 합병은 다음과 같습니다.
var result=$.extend( false, {},
{ name: "John", location:{city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} }
)
그러면 병합된 결과는 다음과 같습니다:
result={name:"John", last :"Resig",location:{state:"MA",county:"China"}}
위 내용은 $.extend()가 프로젝트에서 자주 사용되는 내용입니다.