我正在学习JS,并试图理解回调。我碰到一个链接来了:How to explain callbacks in plain english? How are they different from calling one function from another function? 在接受的答案使用回调的解决办法如下:回调不同于从另一个函数调用(JS)?
function processArray(arr, callback) {
var resultArr = new Array();
for(var i = arr.length-1; i >= 0; i--)
resultArr[i] = callback(arr[i]);
return resultArr;
}
var arr = [1, 2, 3, 4];
var arrReturned = processArray(arr, function(arg) {return arg * -1;});
alert(arrReturned);
然而,当我试图做同样的事情,而无需使用回调如下,我得到了相同的答案以上。
function processArray2(arr) {
var resultArr = new Array();
for(var i = arr.length-1; i >= 0; i--)
resultArr[i] = negate(arr[i]);
return resultArr;
}
function negate(n) {
return n*-1;
}
var arr = [1, 2, 3, 4];
var arrReturned2 = processArray2(arr);
alert(arrReturned2);
当没有回调的情况下可以做同样的事情为什么我们需要在上面的例子中使用回调。我知道我绝对错过了一些东西。但我似乎无法理解什么。
在你的第二个例子中,negate没有定义。那是遗漏吗? – wafflecat
顺便说一句,回调只是正常的,匿名函数。他们没有什么特别的。 – ftor