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

两种函数写法的区别

两种函数写法的区别

慕娘9325324 2019-04-19 16:12:40
看到一个答案(原答案链接)说下面两种写法的意义截然不同。比较困惑这两种写法到底有什么不同,第一种写法看起来复杂一些,添加一个中间函数c的意义是什么?第一种写法:functiona(){varb={};functionc(){returnb;}returnc;}第二种写法:functionc(b){returnb;}
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

第一种创建了一个闭包,即函数c可以访问其被声明时所处的上下文a中的变量b,同时在函数a外,无法访问到b,起到了私有变量的作用
比如:
functionfactory(){
varitems=[1,2,3,4,5],i=0;
returnfunction(){
returnitems[i++];
}
}
varnext=factory();
console.log(next());//1
console.log(next());//2
//这里无法直接获取items
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 446 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信