#javascript #callback
Вопрос:
Я создаю простую функцию обратного вызова, пытаясь понять, как она работает.
function cbFunction(x, y, z) {
return x y z
}
function caller(x, y, z, cbFunction) {
console.log('In caller function!')
// your code here
if (typeof cbFunction === "function") {
cbFunction (x, y, z)
}
}
caller(1, 2, 3, cbFunction)
Я вызываю функцию CBF внутри вызывающей функции. Не могли бы вы помочь мне понять, почему он не добавляет x, y, z? Я учусь в JS как новичок и благодарю вас за вашу помощь!
Комментарии:
1. Как вы думаете, почему он не добавляет числа? Вы ничего не делаете с результатом, кроме как возвращаете его, и
caller
вас также не волнует возвращаемое значение.2. На самом деле это добавление x, y и z, однако вы ничего не делаете с результатом
cbFunction
, вы могли бы попробоватьreturn cbFunction(x, y, z)
в функции вызывающего абонента, тогдаconsole.log(caller(1, 2, 3, cbFunction));
Ответ №1:
Это добавление чисел — вы просто ничего не делаете с результатом, возвращенным cbFunction
.
Вместо этого верните результат, возвращенный cbFunction
:
function cbFunction(x, y, z) {
return x y z
}
function caller(x, y, z, cbFunction) {
console.log('In caller function!')
// your code here
if (typeof cbFunction === "function") {
return cbFunction(x, y, z); //<-- return
}
}
console.log(caller(1, 2, 3, cbFunction))
Комментарии:
1. Теперь я это вижу. Большое вам спасибо за объяснение!
2. Да, я пытался, но он попросил меня подождать пару минут. Я буду.