Кажется, что все примеры здесь показывают, как объявить это, но не как это использовать.Я думаю, именно поэтому @Kiran имел так много проблем.
Хитрость в том, чтобы объявить функцию, которая использует обратный вызов:
function doThisFirst(someParameter, myCallbackFunction) {
// Do stuff first
alert('Doing stuff...');
// Now call the function passed in
myCallbackFunction(someParameter);
}
Бит someParameter
можно опустить, если не требуется.
Затем вы можете использовать обратный вызов следующим образом:
doThisFirst(1, myOtherFunction1);
doThisFirst(2, myOtherFunction2);
function myOtherFunction1(inputParam) {
alert('myOtherFunction1: ' + inputParam);
}
function myOtherFunction2(inputParam) {
alert('myOtherFunction2: ' + inputParam);
}
Обратите внимание, как функция обратного вызова передается и объявляется без кавычек или скобок .
- Если вы используете
doThisFirst(1, 'myOtherFunction1');
, это не удастся. - Если вы используете
doThisFirst(1, myOtherFunction3());
(я знаю, что в этом случае нет ввода параметров), тогда он вызовет myOtherFunction3
first , так что вы получите непреднамеренные побочные эффекты.