js方法 各种形式 财富值27

2016-11-01 20:27发布

突然了解到全局变量是烧性能的 然后联想到了方法,但是js基础底子差,对一些奇奇怪怪的想法不敢下确定,求大神指点了。

/*------function  one--------------*/ var a = 1; function aF(){     var b = a+1;     return b; } function bF(){     var c = aF();     return c; } $(function(){     bF(); });  /*------function  two--------------*/ $(function(){     var a = 1;     function aF(){         var b = a+1;         return b;     }     function bF(){         var c = aF();         return c;     }     bF(); });  /*------function  three-----------*/ $(function(){     var a = 1;     function bF(){         var c = aF();         function aF(){             var b = a+1;             return b;         }         return c;     }     bF();     aF = null; }); 

求大神指点
第三种和第二种有什么区别
关键是最想知道的是性能方面
(其实我也不知道到底想知道什么,求区别把)

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
段曼 - 我很好
1楼-- · 2016-11-01 21:02

个人理解从占用内存的角度而言,第二种的性能比第三种更好一点点。因为第二种的两个函数都一直保存在内存中。而第三种里的aF在bF内部,bF执行完以后aF就会被销毁。因为bF外面没有变量引用aF。这里并不算是我们通常所说的闭包。

你再把a传递进去,性能说不定更好

首选,几个小函数影响不了多大性能。
写代码,代码可维护行是很重要的一个方面,有时候性能往往是让路于维护的,明明有些函数可以自己写,为什么要用jq和ng...,
而且第三个函数内部使用闭包,闭包会影响性能,消耗内存,
你可以度娘一下 js的变量提升和js的闭包。。。。

一周热门 更多>