콜백 함수 개념 : 콜백 함수는 함수 포인터를 통해 호출되는 함수입니다. 기능의 포인터 (주소)를 인수로 전달하면이 포인터가 가리키는 함수를 호출하는 데 사용될 때 콜백 함수라고합니다.
콜백은 다른 함수에 대한 인수로 전달되는 함수이며 부모 함수가 완료된 후에 실행됩니다.
콜백 함수 사용 이유 : 발신자를 Callee와 분리 할 수 있습니다. 발신자는 발신자가 누구인지 신경 쓰지 않습니다. 특정 프로토 타입과 같은 호출 기능이 있다는 것입니다 (예 : 리턴 값은 int).
다음과 같은 예를 고려하십시오.
프로젝트의 하단과 높은 수준은 다른 직원이 데이터 액세스를 담당하고 상단이 특정 모듈의 데이터를 사용하는 경우에 담당합니다. 최하위 직원, 나는 당신이 필요합니다. 특정 요구 사항을 충족시키는 데이터를 제공하며 인터페이스를 제공합니다.
기본 직원은 다음과 같이 말했습니다. 데이터를 제공하고 귀하의 비즈니스를 표시하고 처리하는 방법은 귀하의 요구에 대한 모든 인터페이스를 제공 할 수 없습니다 데이터를 작성하면 결과가 표시됩니다.
코드 사본은 다음과 같습니다.
// 데이터는 기본 레이어가 제공하는 데이터 소스를 나타내고 funcName은 더 높은 계층의 호출 함수를 나타냅니다.
함수 (data, funcName) {
1. 데이터는 사례 1에 속하며 기본 층에 의해 처리됩니다.
2. 사례 2에 속합니다. 높은 수준에서 처리하는 방법에 따라 처리됩니다.
..... .....
}
아직 명확하지 않았을 수도 있습니다. 예를보고 한 번에 모두 이해할 수 있습니다.
코드 사본은 다음과 같습니다.
// 제공된 데이터 소스가 정수 인 경우, 학생의 점수 인 정수 인 경우 NUM <= 0 일 때 기본 레이어로 처리되며 N> 0이면 상단 계층으로 처리됩니다.
// 다음 함수를 복사하여 1.JS로 저장하십시오
함수 f (num, 콜백) {
if (num <0) {
경고 ( "저수준 기능을 호출하여 프로세스!");
ALERT ( "점수는 음수, 입력 오류가 될 수 없습니다!");
} else if (num == 0) {
경고 ( "저수준 기능을 호출하여 프로세스!");
경고 ( "학생이 시험을 치르지 않았을 수도 있습니다!");
}또 다른{
경고 ( "고급 기능 처리를 호출하십시오!");
콜백 ();
}
}
코드 사본은 다음과 같습니다.
// 다음 test.html 파일을 1.js와 동일한 디렉토리로 저장합니다.
<! doctype html public "-// w3c // dtd html 4.01 Transitional // en"
"http://www.w3.org/tr/html4/loose.dtd">
<html>
<헤드>
<meta http-equiv = "content-type"content = "text/html; charset = gb2312">
<script src = "1.js"type = "text/javaScript"> </script>
<title> 제목의 문서 </title>
<script type = "text/javaScript">
기능 test () {
var p = document.getElementById ( "pp");
pp.innertext = "";
var num = document.getElementById ( "score"). 값;
f (num, function () {// 익명의 고급 처리 함수
if (num <60) Alert ( "실패!");
else if (num <= 90) 경고 ( "세대는 우수합니다!");
elert alert ( "이 세대에 대한 우수한 결과!");
pp.innertext = "1978 년 이후 QQ558064!"
}
</스크립트>
</head>
<body>
<p>
콜백 기능 예 : 학생 점수가 점수 <= 0 인 경우, 기본 계층에 의해 처리됩니다.
</p>
학생 점수 <입력 유형 = "텍스트"id = "스코어">를 입력하십시오
<input type = "button"onclick = "test ()"value = "결과를보십시오">
<p id = "pp"> </p>
</body>
</html>
이 파일을 실행하면 효과를 볼 수 있습니다