a={id:1,get:function(){alert(this.id)}}
$("#test").click(a.get)//이번에 참조한 id는 1이 아닙니다. . 하지만 테스트
1을 얻으려면 $.proxy()의 기능을 변경해야 합니다.
$("#test").click($.proxy(a,"get"))
$("#test").click($.proxy(a.get,a))
프록시: function( fn, context ) {//함수 컨텍스트를 변경합니다. 이는 설정된 객체를 가리킵니다.
여기서 매개변수는 두 가지 방법이 될 수 있습니다: function fn fn 메서드 컨텍스트
함수 메서드 fn[context] 함수 fn
if ( typeof context === "string" ) {//content가 문자열인 경우 fn의 fn[ context ] 메소드로 간주한 후 함수인지 여부를 판별합니다
var tmp = fn[ context ];
context = fn;
fn = tmp;
}
if ( !jQuery.isFunction( fn ) ) {//즉시 정의되지 않은 함수가 아님
return unundefined;
}
var args = Slice.call(args, 2),//fn 및 content 뒤의 매개변수를 실행할 함수 매개변수로 사용
proxy = function() {
return fn .apply( context, args.concat( Slice.call( 인수 ) ) );//지정된 컨텍스트 세트를 사용하여 실행 가능한 함수를 반환합니다. fn은 실행 가능한 라인 수이며 이를 콘텐츠로 지정합니다. args.concat( Slice.call(인수))을 매개변수로
};
proxy.guid = fn.guid ||proxy.guid || jQuery.guid;// 함수는
return Proxy;
},
//access를 삭제하는 데 사용할 수 있습니다. 이 메서드는 주로 jquery 내에서 사용되며 attr, prop, css에 주로 사용되며 DOM 그룹의 단일 또는 여러 속성을 설정합니다. (jquery 객체) , 스타일 값, DOM 그룹의 특정 속성 및 스타일 값을 가져옵니다. (jquery 객체)
//elems, 키 속성, 값 속성 값, exec로 작동되는 객체 그룹의 기본값은 다음과 같습니다. true, fn이 작동하기 위해 사용하는 함수, pass가 메인 attr에 val, css, html, text, data, width, height, offset을 설정할 때
access: function(elems, key)가 true여야 합니다. , value, exec, fn, pass) {
var length = elems.length;
//여러 속성 설정
if ( typeof key === "object" ) {//속성 값이 다음과 같은 경우 객체인 경우 dom 그룹(jquery 객체)의 속성과 해당 값
for ( var k in key ) {
jQuery.access( elems, k, key[k], exec, fn, value );
}
return elems;//return Result
}
//단일 속성 설정
if (value !== undefine) {//값이 존재하는 경우, 객체 그룹일 수도 있고 단일 속성일 수도 있는 특정 속성을 설정합니다. 존재하지 않는 경우 이를 가져옵니다. doms[0](jquery 객체) 특정 속성 값은 객체만 반환하거나 객체가 undefiend를 직접 반환할 수 있습니다. 존재하지 않습니다.
exec = !pass && exec && jQuery.isFunction(value);//현재 jquery 기본 패스는 null이고 exec는 true입니다. value가 함수인지 여부는
for( var i = 0; i fn( elems[i], key, exec ? value.call( elems [i], i, fn( elems[i], key ) ) : value, pass );// exec가 true이면 작업 개체의 시퀀스 및 작업 속성 값을 매개 변수로 전달하고, 그렇지 않으면 속성 키 값을 설정합니다. 값 }
return elems; 속성 가져오기
반환 길이 ? fn( elems[0], key ) : 정의되지 않음
},
now : function() {//현재 시간 반환
return (new Date()) .getTime()
},