看到一个答案(原答案链接)说下面两种写法的意义截然不同。比较困惑这两种写法到底有什么不同,第一种写法看起来复杂一些,添加一个中间函数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());//1console.log(next());//2//这里无法直接获取items
添加回答
举报
0/150
提交
取消