像题目所说的,假如我有一个插件,这个插件里有一个函数 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 1
现在的引擎几乎没差别了吧, JIT 这个应该能优化
再者你都操作 DOM 了,相比之下, call 个函数 p 大点事啊,即使有开销也可以忽略 |
6
fds 2015-10-23 11:26:54 +08:00 1
函数调用肯定会慢一丁丁点。但一般没什么影响,写逻辑时没必要考虑这个。除非你要循环调用一千万次。
多用子函数把代码逻辑写清晰更重要。 |
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 里不是更好。
|