문제

나는 물었다 콜백에 대한 질문 다른 질문에 도달했습니다 (의견 참조). 클로저는 콜백과 어떻게 다른가요?

도움이 되었습니까?

해결책

이것에 대한 소개를 확인하십시오. http://jibbering.com/faq/faq_notes/closures.html. 클로저가 함수와 관련된 방법을 더 잘 이해하는 데 도움이 될 수 있습니다.

다음은 일련의 폐쇄 예입니다. http://www.javaScriptkit.com/javatutors/closures2.shtml

기본적으로 콜백은 기능 포인터와 같습니다. 폐쇄를 만드는 비트는 해당 기능이 외부의 변수와 같이 살아있는 상황에서 모든 것에 액세스 할 때입니다. 이 경우 함수는 변수의 현재 값을 사용합니다 (복사와는 반대로). 예 4를 참조하십시오.

다른 팁

다른 정의 :

콜백 -

콜백은 다른 코드에 대한 인수로 전달되는 실행 가능한 코드입니다.

폐쇄 -

폐쇄는 하나 이상의 결합 된 변수를 포함하는 환경에서 평가되는 함수입니다. 호출되면 함수가 이러한 변수에 액세스 할 수 있습니다.

폐쇄에 대한 좋은 정의가 있습니다 여기:

"클로저"는 이러한 변수를 바인딩하는 환경 (표현식을 닫는다”)과 함께 자유 변수를 가질 수있는 표현식 (일반적으로 함수)입니다.

실제로, 그것은 숨겨진 변수가있는 함수임을 의미합니다.

콜백은 더 높은 수준의 아이디어입니다. 일반적으로 그것은 나중에 부름을 받으려는 의도로 전달되는 함수입니다. JavaScript에서는 클로저가 종종 콜백으로 사용됩니다.

간단히 말해서 : 컨텍스트 변수를 사용하는 콜백은 폐쇄입니다.

컨텍스트 변수에 따라 콜백 일명 바운드 변수 (== 객체 상태)가 폐쇄됩니다. 자유 변수 (== 매개 변수) 만 필요할 때 순수한 기능이됩니다.

다음은이 두 가지를 구별하는 방법입니다.

폐쇄

예를 들어 사용자가 버튼을 클릭하면 화면에서 어떤 일이 발생하기를 원합니다.이 경우 사용자 이벤트 (클릭)를 통과 한 다음 데이터를 푸시하는 경우 클로저는 기능을 확장하는 데 사용됩니다. 보기.

콜백

콜백은 클로저와 다소 유사하지만 동기식 기능을 알리고 제공하는 데 더 많이 사용됩니다. 예를 들어 jQuery ajax 호출을 수행하면 다음과 같은 콜백이 있습니다. success(), error(), beforeSend() 비동기 데이터를 처리하기위한 것입니다.

콜백 함수 란 무엇입니까?

콜백 함수는 다음과 같은 함수입니다.

  • 다른 기능에 대한 인수로 전달되었습니다
  • 어떤 종류의 이벤트 후에 호출 ((사 필요)
  • 부모 함수가 완료되면 인수로 전달 된 함수가 호출됩니다.

평범한 영어로 우리는 말합니다 콜백은 다른 함수에 의해 호출되는 모든 함수이며, 첫 번째 함수는 인수로 전달 된 매개 변수 또는 함수로 취합니다.

  • 메모 :호출 : 함수 내부의 코드는 함수가 호출되면 실행됩니다. 또는 우리는 이와 같이 "함수 호출"대신 "함수 호출"이라는 용어를 사용하는 것이 일반적이라고 말합니다.

"함수를 호출", "함수 시작"또는 "함수 실행"이라고 말하는 것이 일반적입니다.

 function getUserInput(firstName, lastName, age, callback2,callback1) {
    var fullName = firstName + " " + lastName;

    // Make sure the callback is a function
    if (typeof callback2 === "function") {
    // Execute the callback function and pass the parameters to it
    callback2(fullName, age);
    }
	
    if (typeof callback1 === "function") {     
    callback1(lastName);
    }
}

function callbackforlastname1(lname){
 console.log("---");
}
 
function genericPoemMaker(name, aged) {
    console.log(name + " is finer than fine wine.");
     console.log("A " + aged + " of unfortunl smile");
}

getUserInput("Avinash", "Maurya", "26", genericPoemMaker,callbackforlastname1); 
ऐसे कॉल करते है

폐쇄 :

  • 다른 함수 내부의 함수 키워드, 폐쇄를 만듭니다.

  • 또는 함수는 다른 함수로 돌아가서 폐쇄를 말할 수 있습니다.

평범한 영어 참고 : 다른 함수에서 인수로 전달되는 약간의 차이 함수는 콜백이거나 다른 함수에서 정의가 닫는 경우

var length = 101;
function fn2() {
	console.log("fffxxx: "+this.length);
}
 
var obj = {
  length: 5,
  method3: function(fn) {
    fn();
    arguments[0]();
  }
};
 
obj.method3(fn2, 1);
   
** 출력

fffxxx:101
fffxxx:2**

두 사람이 어떻게 관련되어 있는지 알지 못합니까? 클로저는 로컬 상태의 일부를 일종의 기능으로 전달합니다.

콜백은 특정 변경 사항에 대해 알려주고 프로그램 흐름을 리디렉션하기위한 것입니다. 폐쇄는 로컬 상태를 수정할 수 있지만 콜백과 마찬가지로 프로세서 시간을 처리 할 수는 없습니다.

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