Если у меня есть код ниже, где я передаю две функции в качестве параметров в функцию sayHi
, это пример обратного вызова?Функции передаются как параметры, всегда обратные вызовы? JavaScript
Я замечаю, что есть два способа запуска этих «функций параметров»: либо, как показано ниже, я называю функции, в которых они определены (в качестве аргументов), или альтернативно, где я вызываю параметр в функции sayHi. Разве это будет разница между обратным вызовом и анонимной функцией?
function sayHi(name, testForTrue) {
if (testForTrue == true) {
console.log(name);
}
}
sayHi(function() {
return 'Zach'
}(), function() {
return true;
}());
Другой способ получить тот же результат, как показано ниже. В этом случае я оцениваю функции в другое время? Есть ли какая-то практическая разница между этими двумя?
function sayHi(name, testForTrue) {
if (testForTrue() == true) {
console.log(name());
}
}
sayHi(function() {
return 'Zach'
}, function() {
return true;
});
звучит так, будто вы слишком усложняете вещи, чего вы пытаетесь достичь в примере? – user1620090
Просто более глубокое понимание того, как работает JavaScript, чем в настоящее время. –
Учитывая первый пример, это не «обратные вызовы». Обратные вызовы использовались для вызова определяемых пользователем вещей, когда сама вызываемая функция сделала messing. ;) См. @Jamen ниже. Эти функции будут вызваны до вызова фактической функции и будут возвращать значения и передавать их в качестве аргументов функции. –