像题目所说的,假如我有一个插件,这个插件里有一个函数 myfun 需要几个小方法的支持,这些小方法比如一个 dom 元素的位置计算,一个 dom 元素的样式删改等等,都不是很大、很复杂的函数。
那么我是把这些小方法直接写在 myfun 这一个函数里面,还是说写成一个个小方法,引进来呢,如果不考虑重用性,这些小方法就只会在 myfun 这里面用一次,不会再别的地方调用。
那么是那种情况性能更好,或者运行更快?
// 直接写在函数内 function myfun() { var a = 1, b = 2, c = 3; a = a*a; b = b*b*b; c = c*c*c*c; return a+b+c; }
// 分成一个个小方法 function myfun() { var a = 1, b = 2, c = 3; a = a(a); b = b(b); c = c(c); return a+b+c; } function a() { return 1; } function b() { return 2; } function c() { return 3; }
![]() | 1 ipconfiger 2015-10-23 11:12:34 +08:00 废话,肯定是写成一坨速度快啊 |
![]() | 2 musicq OP @ipconfiger 那我的方法要是稍微更复杂一点呢,也一样吗 |
![]() | 3 ipconfiger 2015-10-23 11:17:48 +08:00 @musicq 你自己跑一下测个时间死? |
![]() | 4 chairuosen 2015-10-23 11:25:06 +08:00 在没有卡成狗的情况下,先不要考虑性能优化。 |
![]() | 5 zhujinliang 2015-10-23 11:26:17 +08:00 ![]() 现在的引擎几乎没差别了吧, JIT 这个应该能优化 再者你都操作 DOM 了,相比之下, call 个函数 p 大点事啊,即使有开销也可以忽略 |
6 fds 2015-10-23 11:26:54 +08:00 ![]() 函数调用肯定会慢一丁丁点。但一般没什么影响,写逻辑时没必要考虑这个。除非你要循环调用一千万次。 多用子函数把代码逻辑写清晰更重要。 |
![]() | 7 learnshare 2015-10-23 11:28:55 +08:00 几乎没差别,没达到数万的 DOM 操作,一般不会有慢的感觉 |
8 dozer47528 2015-10-23 11:31:21 +08:00 还是太年轻 代码首先是用来被人读的,然后是给机器跑的。 |
![]() | 9 adspe 2015-10-23 21:34:11 +08:00 写在 prototype 里不是更好。 |