1. 程式人生 > >JS閉包 function()()函式說明

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