jQuery는 jQuery.extend() 및 jQuery.fn.extend() 메서드를 사용자 정의했습니다. jQuery.extend() 메서드는 전역 함수 또는 선택기를 만들 수 있고 jQuery.fn.extend() 메서드는 jQuery 개체 메서드를 만들 수 있습니다. >
예:
jQuery. extend({
showName : function(name){
alert(name)
}
})
jQuery.showName("Dark Blue")
jQuery. 확장()을 사용하여 jQuery 객체를 확장할 수도 있습니다.
예:
var a = {
name : "blue",
pass : 123
}
var b = {
이름: "red",
pass: 456,
age: 1
}
var c = jQuery.extend({},a,b)
c는 a,b 객체 속성을 소유합니다. b 객체는 a 객체 뒤에 있으므로 해당 이름 속성은 c 객체에서 첫 번째입니다.
jQuery.extend() 메서드는 일련의 옵션을 전달합니다.
function fn(options){
var options = jQuery.extend({ //기본 매개변수 옵션 목록
name1: value1,
name2: value2,
name3: value3
}, options); //함수 매개변수를 사용하여 기본 매개변수 옵션 목록을 덮어쓰거나 병합합니다
/ /함수 본문
}
fn({ name1 : value3, name2 : value2 , name3 : value1 });/ /새 값 사용
fn({ name4 : value3, name5 : value2 });// 기본값에 새 옵션 추가
fn() //기본 옵션 값 유지
이 메서드가 호출되면 새 매개 변수 값을 전달하면 기본 매개 변수 옵션 값을 덮어쓰게 됩니다. 그렇지 않으면 기본 매개 변수 값을 사용합니다.
JQuery 개체 메서드를 생성하려면 JQuery.fn 개체를 사용하세요.
jQuery.fn 객체를 통해 속성과 메소드를 추가할 수 있습니다. 실제로 jQuery.fn 객체는 Hook입니다. jQuery.prototype에서는 이를 줄여서
fn이라고 합니다. jQuery 코드를 보면 찾기가 어렵지 않습니다.
jQuery.fn = jQuery.prototype = {
init: function(selector, context) {//....
//……
}
원본 jQuery .fn = jQuery.prototype. 당신은 확실히 프로토타입에 익숙합니다.
예:
jQuery.fn.test = function(){
alert("jQuery 객체 메서드입니다!")
}
jQuery("div").click(function(){
$(this).test (); //현재 jQuery 개체에서 test() 메서드를 호출합니다.
})
jQuery.fn.extend() 메서드를 호출할 수 있습니다.
jQuery.fn .extend({
테스트 : 함수( ){
return this.each(function(){
alert(this.nodeName)
});
}
});
jQuery("body *").click(function(){
$(this).test(); //jQuery 객체 메서드 호출
})
한마디로: jQuery.extend는 JQuery 클래스 사용자 정의 확장을 위한 것이고, jQuery.fn.extend는 JQuery 객체에 대한 사용자 정의 확장입니다.