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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典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闭包面试题》的理解的主要内容,如果未能解决你的问题,请参考以下文章

js闭包经典试题

JS一个经典闭包问题

解析js中作用域闭包——从一道经典的面试题开始

JS之经典for循环闭包问题解决方法

个人对js闭包的心得见解

Javascript闭包与作用域this