强迫症菜鸟一枚...functionname(num){varwidth=a;vardefault_width=b;varscale=b/a;varreal=Math.ceil(num/scale);returnreal;}写一些函数经常会遇到类似的问题,像这个函数我会多次调用.但是前三行其实都是重复计算的.varwidth=a;vardefault_width=b;varscale=b/a;functionname(num){varreal=Math.ceil(num/scale);returnreal;}写成上面这种感觉很乱(functionnameVar(){varwidth=a;vardefault_width=b;scale=b/a;}())functionname(num){varreal=Math.ceil(num/scale);returnreal;}最后写成上面这样了想问一下类似这样的函数有什么好一些的写法?不重复计算,看起来也容易明白.
2 回答
![?](http://img1.sycdn.imooc.com/545862aa0001f8da02200220-100-100.jpg)
慕村225694
TA贡献1880条经验 获得超4个赞
vara=40,b=20;varcname={width:a,default_width:b,scale:a/b,ceil:function(num){returnMath.ceil(num/this.scale)}}console.log(cname.ceil(2));
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
墨色风雨
TA贡献1853条经验 获得超6个赞
利用立即调用函数表达式和闭包的概念.varname=(function(){varwidth=a;//目测这个变量在你代码中没用哈vardefault_width=b;//同上varscale=b/a;returnfunction(num){varreal=Math.ceil(num/scale);returnreal;};}());
添加回答
举报
0/150
提交
取消