JS闭包 function()()函数说明

 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能够正常返回。

猜你喜欢

转载自www.cnblogs.com/shuqiao/p/10045354.html