JAVASCRIPT中的回调函数
什么是回调函数?
把一个函数当作实参传递给函数的形参变量(获取传递给函数,通过arguments获取),再另外一个函数中把传递的函数执行这种机制就叫回调函数机制
凡是在某一个函数的某一个阶段需要完成某一件事(而这件事是不确定的),都可以利用回调函数机制,把需要处理的事情当作值传递进来
1 2 3 4 5 6 7 8 9
| function fn(num, callback){ typeof callback === 'function' ? callback() : null; } fn(10); fn(20, function(){ })
|
既然我们已经把函数作为值传递给FN了,此时在FN中我们可以操作传递的函数
- 我们可以在FN中把回调函数执行0-N次
- 我们还可以给回调函数传递参数值
- 我们还可以把回调函数中的this进行修改
- 我们还可以接收回调函数执行返回的值
- …..
1 2 3 4 5 6 7 8 9
| function fn(callback){ var argNumAry = Array.prototype.slice.call(arguments, 1), total = eval(argNumAry.join('+')); typeof callback === 'function' ? callback.call(fn, total) : null; } fn(function(result){ console.log(result, this); }, 10,20,30,40);
|
很多的方法都是依托于回调函数来完成的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| var ary = [12, 23, 34]; ary.sort(function(a, b){ return a-b; }); ary.forEach(function(item, index, input){ });
ary.map(function(item, index, input){ return item*10; });
|