如何优化我的功能不重复行?

时间:2019-03-19 13:38:34

标签: javascript function optimization ecmascript-6

我正在做我的项目,并决定对其进行最大程度的优化!我功能的目的是随机放置图像。

这是我的js函数:

moveImage() {
  this.imgTop = Math.round(Math.random() * (screen.height - this.imgHeight));
  this.imgLeft = Math.round(Math.random() * (screen.width - this.imgWidth));
}

是否可以对其进行优化? 我不认为我应该随机使用两次...

1 个答案:

答案 0 :(得分:3)

您的意思是:

  const offset = ( available, size ) => Math.round(Math.random() * ( available - size ));

  moveImage() {
    this.imgTop = offset( screen.height, this.imgHeight );
    this.imgLeft = offset( screen.width, this.imgWidth );
  }

您只是在哪里将重复的部分放在自己的功能中?

包括对offset函数的调用,实际上它可能比原始字符减少了更多字符,因此不确定您自己的代码是否从头开始“重复”。

编辑。甚至更紧凑:

  const offset = range => Math.round(Math.random() * range);

  moveImage() {
    this.imgTop = offset( screen.height - this.imgHeight );
    this.imgLeft = offset( screen.width - this.imgWidth );
  }