JS 是运行多个 function 速度快,还是运行一个 function 速度快?

2015-10-23 11:09:32 +08:00
 musicq

像题目所说的,假如我有一个插件,这个插件里有一个函数 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;
}
2887 次点击
所在节点    前端优化
9 条回复
ipconfiger
2015-10-23 11:12:34 +08:00
废话,肯定是写成一坨速度快啊
musicq
2015-10-23 11:16:06 +08:00
@ipconfiger 那我的方法要是稍微更复杂一点呢,也一样吗
ipconfiger
2015-10-23 11:17:48 +08:00
@musicq 你自己跑一下测个时间会死?
chairuosen
2015-10-23 11:25:06 +08:00
在没有卡成狗的情况下,先不要考虑性能优化。
zhujinliang
2015-10-23 11:26:17 +08:00
现在的引擎几乎没差别了吧, JIT 这个应该能优化
再者你都操作 DOM 了,相比之下, call 个函数 p 大点事啊,即使有开销也可以忽略
fds
2015-10-23 11:26:54 +08:00
函数调用肯定会慢一丁丁点。但一般没什么影响,写逻辑时没必要考虑这个。除非你要循环调用一千万次。
多用子函数把代码逻辑写清晰更重要。
learnshare
2015-10-23 11:28:55 +08:00
几乎没差别,没达到数万的 DOM 操作,一般不会有慢的感觉
dozer47528
2015-10-23 11:31:21 +08:00
还是太年轻

代码首先是用来被人读的,然后是给机器跑的。
adspe
2015-10-23 21:34:11 +08:00
写在 prototype 里不是更好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/230423

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX