1 function countNum(num1){ 2 console.log('num1:'+num1); //1 3 return function(num2){ //返回匿名函数,该匿名函数可以访问countNum函数作用域中的变量num1 4 console.log('num2:'+num2); //2 5 return num1+num2; 6 }; 7 } 8 9 var count=countNum(1)(2); 10 console.log('count:'+count); //3
1.先执行countNum()函数,传入参数为1给变量num1,返回匿名函数。
2.再执行匿名函数,传入参数2给变量num2,返回num1+num2的值。
3.因为匿名函数能够访问包含函数countNum()的活动对象,所以能够访问变量num1,匿名函数自己的活动对象中包含了变量num2,所以num1+num2能够正常返回。