1. 程式人生 > >經典js閉包----對《大部分人都會做錯的經典JS閉包面試題》的理解

經典js閉包----對《大部分人都會做錯的經典JS閉包面試題》的理解

targe 什麽 mage 技術分享 alt 詳細 重新 ole blank

重新看js閉包的時候看到了《大部分人都會做錯的經典JS閉包面試題》,自己理解並記錄了下想法。很多部分博主已經講得很詳細了,只是後面的解釋部分文字有點繞。

原帖地址:http://web.jobbole.com/84328/

先貼代碼

 1 function fun(n,o){
 2     console.log(o);
 3     return {
 4         fun:function(m){
 5             return fun(m,n);
 6         }
 7     }
 8 }
 9 
10 var a = fun(0);
11 a.fun(1);
12 a.fun(2);
13 a.fun(3); 14 15 var b=fun(0).fun(1).fun(2).fun(3);
16 var c= fun(0).fun(1); 17 c.fun(2); 18 c.fun(3);

問:每一個輸出分別是什麽?

答案:

undefined,0,0,0

undefined,0,1,2

undefined,0,1,1

來逐步拆解:

技術分享

經典js閉包----對《大部分人都會做錯的經典JS閉包面試題》的理解