为了账号安全,请及时绑定邮箱和手机立即绑定

一道JavaScript函数问题

一道JavaScript函数问题

温温酱 2018-11-13 14:18:39
function fun(){     console.log('foo');    return {      fun: function(){        fun();       }     }; }fun().fun(); // 'foo','foo'fun().fun().fun(); // 错误:Cannot read property 'fun' of undefined为什么会是这样的结果,JS菜鸟求解,花了好长时间都没弄明白,请赐教……
查看完整描述

1 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

第一行 fun().fun() 
首先执行fun() 因为里面有console.log('foo') 所以这是第一个打印
然后执行下面的return 返回了个对象 然后就调用对象内的fun 然后在内部fun() 因为闭包,最外部fun不会被销毁,就会执行最外的fun 所有有了第二个打印

第二行 fun().fun().fun() 前面和上面一样 也会先输出两个foo 但fun().fun() 并没有return出来东西 所以是undefined


查看完整回答
反对 回复 2018-11-13
  • 1 回答
  • 0 关注
  • 434 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号