문제

저는 다양한 언어로 프로그래밍을 해왔습니다.최근에 알 수 있는 기회가 생겼어요 jQuery.나는 콜백 함수에 대해 읽었고 그것이 의미하는 바를 이해했습니다(특정 방식으로 작업을 하나씩 수행하는 것). 중첩된 함수와 관련시킬 것인지 아닌지 약간 혼란스럽습니다.같은 것이 아닌가?개념정리를 도와주세요.감사해요.

도움이 되었습니까?

해결책

콜백 함수는 작업이 완료 될 때 호출되는 모든 기능입니다.정의 된 곳에서는 정말로 중요하지 않습니다. 로컬로 범위가 지정된 함수, 전역 범위 등을 생성 할 수 있습니다.

$.ajax를 예로 들리면 success가 콜백 인 경우 :

function handleSuccess(data) {
   $(document.body).append(data);
}

function doAjaxCall() {
   $.ajax({url: 'some/path', success: handleSuccess });
}
.

는 기능적으로 동일합니다 :

function doAjaxCall() {
   var handleSuccess = function(data) {
       $(document.body).append(data);
   }

   $.ajax({ url: 'some/path', success: handleSuccess });
}
.

는 기능적으로 동일합니다 :

function doAjaxCall() { 
   $.ajax({ url: 'some/path', success: function(data) {
       $(document.body).append(data);
    }
   });
}
.

다른 팁

콜백 함수는 콜백을 수행하는 함수일 뿐입니다.:) 먼저 호출해야 합니다. 이는 실제로 모든 작업입니다.다음 예를 고려하십시오.

$.ajax({
    url: '/test/'
});

이 방법은 서버를 호출합니다.이제 작업은 비동기식입니다. 서버가 언제 응답할지 알 수 없습니다.하지만 우리는 그것이 어떤 종류의 데이터를 제공할지는 알고 있습니다.따라서 콜백, 즉 서버가 응답한 후 수행할 작업을 정의합니다.이 경우 정의할 수 있습니다. success 콜백:

$.ajax({
    url: '/test/',
    success: function(res) {
        console.log(res);
    }
});

콜백은 비동기식일 필요는 없습니다.이 예를 고려하십시오

function test(data, callback) {
    if (callback && $.isFunction(callback))
        callback(data);
}

jQuery 메서드 isFunction 경우에만 확인 callback 기능이다.이제 전화하시면 됩니다 test 이와 같이

test('test_string', function(str) {
   console.log(str);
});

두 번째 인수로 전달된 함수는 콜백입니다.

따라서 기본적으로 콜백은 다른 함수에 인수로 전달되는 함수 외에는 아무것도 아닙니다.주로 비동기 작업에 사용되지만 그 뿐만이 아닙니다(실제 예:방법 forEach 배열 개체).

내가 틀렸다면 나를 바로 잡으십시오. 그러나 나는 그 질문이 있다고 생각합니다 :

$("#someDiv").fadeIn(200, function(){
        //do some stuff 
    });

vs

$("#someDiv").fadeIn(200, callbackFunction);
function callbackFunction()
{
    //do some stuff
}
.

(답변이 아닌 답변으로 게시 해 주셔서 죄송합니다. 그러나 코멘트에는 코드 서식이 없음)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top