首页 > 代码库 > 经典js闭包----对《大部分人都会做错的经典JS闭包面试题》的理解

经典js闭包----对《大部分人都会做错的经典JS闭包面试题》的理解

重新看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闭包面试题》的理解