javaScript中的回调函数
直接用一个实例来解说
回调函数要是完全明白了,对代码的理解已经很深了
1 <!-- 2 3 (阿童木与小丸子的博客实例) 4 5 函数既是一个数据类型,也是一个对象,本身还是函数,最终返回一个值,本质上,我们用的是函数的返回的那个值,不调用,不执行,把值返回到调用出 6 7 java中声明变量的地方,都可以用类来代替 8 9 回调函数 10 这里涉及匿名函数,和变量函数的知识推导出来的,还有形参变量和实参的对应的问题 11 12 --!> 13 14 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 15 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 16 <head> 17 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 18 <title></title> 19 </head> 20 <body> 21 <script type="text/javascript"> 22 23 //声明一个函数 24 function run(n1,n){ 25 //这里的形参可以是任何东西,弱类型语言 26 return n1 + n(n1); 27 } 28 //函数的调用 29 var num = run(10,function(a){//在js中,在函数调用是实参的地方,直接声明一个函数,别忘了函数也是对象 30 //回调函数:方法的参数是一个函数的时候,就叫回调函数,也就是函数的递归调用 31 return a; 32 }); 33 /* 34 对这个回调函数进行详细的步骤说明 35 36 1 函数的调用处开始看,因为函数调用才可以执行 37 2 可以看出调用出是一个变量的声明,此变量的名字为num,在调用run方法的时候,给这个变量赋值的是传入的两个实参,第一个是一个数,第二个是一个函数,而函数最终返回的值也是一个数,所以我们我求出这个实参函数的值是多少 38 3 对于run方法,可以看出方法中的形参n就是function(a)这个函数,知道n1是10,也就可以知道a是10。然后num方法就可以写成 39 var num = run(10,10); 40 4 这样很明显再次带入到上面的run函数中,很容易可以得出结论为,num的值是20 41 42 (阿童木与小丸子的博客实例) 43 44 */ 45 alert(num); 46 </script> 47 </body> 48 </html>