javascript - 使用 OOP 减少代码并使其可重用

标签 javascript oop code-reuse

我正在创建一个应用程序,但我对制作它的方式有疑问。

  • 您将能够选择一个数字来确定两个相同圆圈的时间流逝(以分钟为单位)。 (为每个圆圈创建单独的按钮来增加和减少时间)
  • 随着时间的流逝,第一个圆圈会填满,直到第一个圆圈的倒计时达到 0 分钟。
  • 现在,第二个相同的圆圈将开始倒计时,并根据您最初指定的时间填充。

我已将所有适当的 DOM 元素(圆圈、用于递增/递减时间的按钮)链接到为第一个圆圈编写的函数和事件处理程序,并且它运行完美。第二个圆圈本质上是完全相同的东西,只是它的事件有一个不同的 button 元素,当然它是一个不同的圆圈。

如果我复制并粘贴所有代码,然后将与圈 1 关联的变量和函数名称更改为圈 2 的新变量和函数名称,那么它将完美地工作。这看起来非常重复,我确信有更好的方法来解决这个问题。

我想到的是OOP。因此,当我按下此按钮时,我可以说当我按下与每个圆圈关联的此按钮时,此圆圈将填满,而不是说圆圈1或圆圈2应该填满。我的想法正确吗? OOP 是我问题的答案吗?

最佳答案

如果您可以让它与代码重复一起工作,那就是一个很好的开始。然后你要做的就是重构:

查找代码中完全重复的部分,如果可能,将它们提取到一个函数中。

然后查找代码中执行 var1var2 等操作的部分,并考虑在数组循环中抽象重复的方法、生成器函数或 OOP 类和实例模式。

随着您的继续,您会发现您的代码在功能上是相同的,但更容易推理和阅读。

也不要害怕从空白文件重新启动!

关于javascript - 使用 OOP 减少代码并使其可重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40425838/

相关文章:

javascript - AngularJS 在处理 HTML Void 元素的自定义指令时是否有错误

python - 如何使用 tensorflow 制作经过训练的模型的副本?

c++ - 虚类的多重继承

asp.net-mvc - ASP.NET MVC 中的可重用 UI

flutter - 如何在 Flutter 中创建和使用 SnackBar 进行重用(全局)

javascript - 为什么这个全局计数器变量不能与 setTimeout 一起使用?

javascript - 添加loginWith<service>中未包含的外部登录服务

javascript - 在通过 Flask Web 服务器呈现的 html 页面中显示 iframe 中文本文件的内容

oop - 在哪里可以找到有关 OOP 的深入信息?

python - Django-CMS复用插件实例