Я изучаю функции обратного вызова, но я смущен синтаксисом для следующих двух функций. однако все они дают один и тот же результат, но написаны в другом синтаксисе, однако, почему первый не нужно «возвращать результат», а второй? заключается в том, что, поскольку «обратный вызов (результат)» уже возвратил функцию, и нет необходимости возвращаться? но для второй функции слияния, поскольку обратный вызов находится на «array1 [i], array2 [i]», результат должен быть возвращен?, пытаясь понять, как работает синтаксис в функциях обратного вызова
Пожалуйста, исправьте меня, если мое понимание неверно. Благодарю.
var merge = function(array1, array2, callback){
var result = [];
for (var i = 0; i < array1.length; i++) {
result[i] = array1[i] + array2[i];
};
callback(result)
};
var x=merge([1, 2, 3, 4], [5, 6, 7, 8], function(merged) {console.log(merged)});
var merge = function(array1, array2, callback) {
var result = [];
for (i=0; i < array1.length; i++) {
result[i] = callback(array1[i], array2[i]);
}
return result;
};
var x = merge([1, 2, 3, 4], [5, 6, 7, 8], function(a, b){
return a + b;
});
console.log(x);
Да, эти два отрывка делают две очень разные вещи. Первый просто добавляет значения и передает окончательный результат обратному вызову. Второй на самом деле вызывает обратный вызов для получения объединенного значения (т. Е. Он не должен быть только добавлением), а затем напрямую возвращает результат. –