jquery each()소스 코드

1508 단어 jqueryeach
 
// args is for internal usage only
each: function( object, callback, args ) {
var name, i = 0,
length = object.length,
isObj = length === undefined || jQuery.isFunction(object);
if ( args ) {
if ( isObj ) {
for ( name in object ) {
if ( callback.apply( object[ name ], args ) === false ) {
break;
}
}
} else {
for ( ; i < length; ) {
if ( callback.apply( object[ i++ ], args ) === false ) {
break;
}
}
}
// A special, fast, case for the most common use of each
} else {
if ( isObj ) {
for ( name in object ) {
if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
break;
}
}
} else {
for ( var value = object[0];
i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
}
}
return object;
},
분석:jquery 문 서 는 each(callback)역할 은 모든 일치 하 는 요 소 를 문맥 로 하여 함 수 를 수행 하 는 것 이 라 고 말 합 니 다.바로 each 로 배열 을 옮 겨 다 니 며 같은 방법 을 수행 하 는 것 입 니 다.이 방법 을 실현 하 는 가장 관건 적 인 것 은 call 과 apply 의 용법 입 니 다.call(apply)은 함수 의 대상 을 초기 문맥 에서 this Obj 가 가리 키 는 대상 으로 바 꾸 는 것 입 니 다.즉,this Obj 로 원래 의 대상 을 대체 하여 실행 하 는 방법 입 니 다.call 과 apply 의 첫 번 째 매개 변 수 는 this 가 가리 키 는 대상 입 니 다.그리고 뒤의 매개 변 수 는 모두 함수 에 전달 되 고 콜 이 함수 에 전달 하 는 매개 변 수 는 쉼표 로 구분 되 며 apply 는 하나의 배열 입 니 다./1.callback.apply( object[ name ], args ) //2.callback.call( object[ name ], name, object[ name ] )

좋은 웹페이지 즐겨찾기