两种函数写法的区别

看到一个答案(原答案链接)说下面两种写法的意义截然不同。比较困惑这两种写法到底有什么不同,第一种写法看起来复杂一些,添加一个中间函数c的意义是什么?
第一种写法:
functiona(){
varb={};
functionc(){
returnb;
}
returnc;
}
第二种写法:
functionc(b){
returnb;
}
慕娘9325324
浏览 477回答 2
2回答

噜噜哒

第一种创建了一个闭包,即函数c可以访问其被声明时所处的上下文a中的变量b,同时在函数a外,无法访问到b,起到了私有变量的作用比如:functionfactory(){varitems=[1,2,3,4,5],i=0;returnfunction(){returnitems[i++];}}varnext=factory();console.log(next());//1console.log(next());//2//这里无法直接获取items
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript