javascript闭包经典面试题

javascript闭包经典面试题functionfun(n,o){  console.log(o)  return{    fun:function(m){      returnfun(m,n);    }  };}vara=fun(0); a.fun(1); a.fun(2); a.fun(3);var

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

function fun(n,o) {

   console.log(o)

   return {

     fun:function(m){

       return fun(m,n);

     }

   };

}

var a = fun(0);  a.fun(1);  a.fun(2);  a.fun(3);
var b = fun(0).fun(1).fun(2).fun(3);
var c = fun(0).fun(1);  c.fun(2);  c.fun(3);

:三行输出分别是什么?

 

首先第一行,先看var a = fun(0),把0传入fun(n,o)中,那么n=0o=undifine

fun(n,o) return{
fun:function(m){returnfun(m,n);}};

所以a就等于{
fun:function(m){return fun(m,0);}};

所以a.fun(1)=function(1){return fun(1,0);}=fun(1,0),所以会输出0

同样a.fun(2)=function(2){return fun(2,0);}=fun(2,0),输出0,以此类推,a.fun(3)也输出0

所以最终输出的结果为:undifine0,0,0

再来看第二行,fun(0)输出undifinefun(0).fun(1)=a.fun(1)=fun(1,0)={fun:function(m){return fun(m,1);}};输出0

fun(0).fun(1).fun(2)=function(2){return fun(2,1);}=fun(2,1)={fun:function(m){return fun(m,2);}},输出1

以此类推,fun(0).fun(1).fun(2).fun(3),

最终按次序输出的是:undifine0,1,2

最后看第三行,var c = fun(0).fun(1),根据上面两行的推理,输出的是undifine0

c={fun:function(m){return fun(m,1);}},c.fun(2)=function(2){return fun(2,1);},输出1

c.fun(3)=function(3){return fun(3,1);},输出的还是1

所以第三行输出的是:undifine0, 1, 1

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189601.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • UPX脱壳逐一跟踪分析

    UPX脱壳逐一跟踪分析UPX脱壳逐一跟踪分析写在前面OD跟踪命令先结合PE知识分析分析“新年快乐.exe”写在前面之前看到的UPX脱壳文章都只是教了方法,对UPX的原理少有提及。看了《逆核》的UPX脱壳一章后,俺尝试把UPX脱壳与PE文件结构的知识结合起来整理了一些(也可联系压缩器Paker的知识)。分析样本来自BUUCTF:Reverse题目“新年快乐”(本文将寻找样本的OEP)OD跟踪命令可能会用到的几个跟踪命令:命令快捷键作用AnimateIntoCtrl+F7反复执行StepIn

    2022年7月12日
    19
  • 苹果手机怎么抓取京东ck(ios获取京东cookie)

    安卓手机抓取京东cookie手机下载Alook浏览器下载地址https://ddayh.lanzoui.com/ioHNNuzjunc打开Alook浏览器访问京东手机版网址https://m.jd.com/点击网页的右上角登陆账号(短信验证登录)登录完成以后点击浏览器中间的菜单键右滑一下找到工具箱->最下面的开发者工具->Cookies,拷贝注意获取到cookie后不能直接退出,否则cookie会立刻失效,关闭窗口即可。获取多账号cookie可以打开无痕窗口,没获取到一

    2022年4月15日
    874
  • 『程序员』[Java]JAVA程序员必看的15本书的电子版

    『程序员』[Java]JAVA程序员必看的15本书的电子版

    2021年8月18日
    153
  • GRAPESEED_radiance blue

    GRAPESEED_radiance bluehttp://www.eyemaginary.com/Portfolio/TurnColorsGray.html转载于:https://www.cnblogs.com/guochen/p/8085149.html

    2022年10月6日
    1
  • H3C交换机配置常用命令「建议收藏」

    H3C交换机配置常用命令「建议收藏」1.配置文件相关命令[Quidway]displaycurrent-configuration//显示当前生效的配置[Quidway]displaysaved-configuration//显示flash中配置文件,即下次上电启动时所用的配置文件<Quidway>resetsaved-configuration…

    2022年6月20日
    40
  • enterprise library mysql_enterpriseLibrary连接MySQL数据库

    enterprise library mysql_enterpriseLibrary连接MySQL数据库使用enterpriseLibrary6.0连接MySQL数据库,因为第一次使用微软企业类库连接数据库,根本一窍不通,在网上上找了好多资料也没找到,废了好大力气才连接上,这里写个随笔记录下来,做个总结,希望能帮到别人吧,步骤如下:1.找到enterpriseLibrary类库,这里使用的是最新版的6.0,下载地址:http://download..net/detail/mxiaochao/9460…

    2022年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号