Концепция функции обратного вызова: функция обратного вызова - это функция, вызванная через указатель функции. Если вы передаете указатель (адрес) функции в качестве аргумента другой функции, когда этот указатель используется для вызова функции, на которую он указывает, мы говорим, что это функция обратного вызова.
Обратный вызов - это функция, которая передается в качестве аргумента другой функции и выполняется после завершения его родительской функции.
Причины использования функций обратного вызова: вы можете отделить вызывающего абонента от Callee. Звонящий не заботится о том, кто является абонентом.
Рассмотрим пример, подобный этому:
Если нижний и высокий уровень проекта координируется различным персоналом. Внизу, мне нужны данные, которые соответствуют определенным требованиям, и вы предоставляете мне интерфейс.
Основные сотрудники сказали: я предоставлю вам данные, и как отображать и обрабатывать, это ваш бизнес Данные, а затем вы будете сами.
Кода -копия выглядит следующим образом:
// Данные представляют источник данных, предоставляемый базовым уровнем, а FuncName представляет функцию вызова высшего уровня.
function (data, funcname) {
1. Дата принадлежит делу 1 и обрабатывается основным слоем;
2. DATA принадлежит к случаю 2. Обрабатывается высоким уровнем.
...
}
Я, возможно, еще не ясно дал понять, мы можем увидеть пример и понять все это сразу
Кода -копия выглядит следующим образом:
// Если предоставленный источник данных является целым числом, которое является оценкой студента, когда num <= 0, он обрабатывается подлежащим уровнем, и когда n> 0 обрабатывается верхним слоем.
// скопировать следующую функцию и сохранить ее на 1.JS
Функция f (num, обратный вызов) {
if (num <0) {
Alert («Вызовите функцию низкого уровня для обработки!»);
Alert («Оценка не может быть отрицательной, ошибка ввода!»);
} else if (num == 0) {
Alert («Вызовите функцию низкого уровня для обработки!»);
оповещение («Студент, возможно, не сдал экзамен!»);
}еще{
Alert («Вызовите обработку функций высокого уровня!»);
перезвонить();
}
}
Кода -копия выглядит следующим образом:
// Сохранить следующий файл test.html в том же каталоге, что и 1.JS:
<!
"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> unt назвал документ </title>
<script type = "text/javascript">
функциональный тест () {
var p = document.getElementbyId ("pp");
pp.innerText = "";
var num = document.getElementById ("Оценка"). Значение;
f (num, function () {// анонимная функция обработки высокого уровня
if (num <60) оповещение ("не удалось!");
иначе, если (num <= 90) оповещение («поколение превосходно!»);
else Alert («Отличные результаты для этого поколения!»);
pp.innertext = "с 1978 года QQ558064!"
}
</script>
</head>
<тело>
<p>
Пример функции обратного вызовов: когда оценка студента составляет <= 0, он обрабатывается базовым слоем;
</p>
Пожалуйста, введите студенческие оценки <input type = "text" id = "оценка">
<input type = "button" onclick = "test ()" value = "Посмотрите на результат">
<p id = "pp"> </p>
</body>
</html>
Запустите этот файл, и вы можете увидеть эффект