문제

콜백의 정의 :

구성 요소 내에서 속성으로 설정된 함수. 일반적으로 구성 요소에서 일부 이벤트가 발생할 때 호출됩니다.

예를 들어:

읽는 대화 상자를 표시하려면 "나는 클릭했다" 사용자가 구성 요소를 클릭하면 구성 요소, 당신은 이것을하는 변수로 저장된 메소드를 작성합니다.

var mouseDownCallbackFunction = function() {
    alert("I was clicked!");
};

다음, 당신은이 기능을 구성 요소 안에 그렇게 설정합니다 ...

// Set the Component to display the dialog when the 
// user presses the mouse down on it.
componentB.setMouseDownCallback(mouseDownCallbackFunction);

그리고 이것은 원인이 될 것입니다 MousedownCallbackfunction 표시하려면 "나는 클릭했다" 구성 요소를 클릭했을 때 경고 상자에서.

도움이 되었습니까?

해결책

C에서는 유효한 콜백입니다. 그러나 나는 JavaScript가 자신의 메모리 위치와 관련하여 변수가 어떻게 처리되는지 잘 모르기 때문에 JavaScript가 너무나 명백하지 않습니다.

C/C ++에서는 공간 포인터를 선언 할 수 있습니다.

void aFunction()
{
     do stuff
}

int main()
{
    void* myCallback = &aFunction; 
    componentB.setMouseDownCallback(myCallback);
}

작동 할 것이다.

그러나 JavaScript 지식의 부족에도 불구하고 나는 그것을 알고 있습니다.

componentB.setMouseDownCallback(function() {
        alert("I was clicked!");
        };
);

유효합니다.

편집하다 두 번째 문장에 아님을 추가했습니다.

다른 팁

예, 이것은 콜백의 정확한 정의를 설명합니다 ...

JavaScript에서는 기술적으로 이것이 바로 a입니다 폐쇄, 참조 된 범위의 변수에 결합 할 수 있으므로.

그러나 클로저는 더 나은 형태의 콜백이므로 콜백입니다. C의 콜백은 더 원시적이며 컨텍스트에 대한 바인딩없이 유형의 기능에 대한 포인터 참조 만 제공합니다.

예, 콜백은 호출되는 것보다 더 높은 레벨에서 정의 된 함수입니다. 클라이언트 코드가 함수를 생성 한 다음 매개 변수로 전달합니다. componentB, 위해서는 componentB 나중에 전화합니다.

예, 콜백입니다.

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