当前位置: 首页 > 知识库问答 >
问题:

我如何通过实现DRY原则使这段代码变成一个可重用的函数呢?

楚鸿波
2023-03-14

我正试图将我的代码应用在一个简单的function中,并带有参数,并且由于DRY原则使其可重用。正如您所看到的,我在我的两个AddEventListener函数中使用了相当相同的代码。下面是我希望在AddEventListener函数中可重用的代码:

 rightBtn.addEventListener("click", () => {
      activeSlide++;
      if (activeSlide > slides.length - 1) {
        activeSlide = 0;
      }
    });

    leftBtn.addEventListener("click", () => {
      activeSlide--;
      if (activeSlide < 0) {
        activeSlide = slides.length - 1;
      }
    });

共有1个答案

谈琛
2023-03-14

您可以简单地创建一个函数,该函数传递一个值,通过该值您可以增加或减少幻灯片索引。然后更新幻灯片,如下面的代码段所示。

null

const slides = ["Apple", "Mango", "Banana"];
let currSlide = 2;

const leftBtn = document.querySelector("#leftBtn");
const rightBtn = document.querySelector("#rightBtn");
const content = document.querySelector("#content");

content.innerText = slides[currSlide];

const changeSlide = (delta) => {
  currSlide = (currSlide + delta + slides.length) % slides.length;
  content.innerText = slides[currSlide];
};

leftBtn.addEventListener("click", () => changeSlide(-1));
rightBtn.addEventListener("click", () => changeSlide(1));
<button id="leftBtn">Left</button>
<span id="content"></span>
<button id="rightBtn">Right</button>
 类似资料:
  • 我有一个特殊的情况,我需要捕获异常并将一个对象返回给客户端来代替异常。我不能将异常处理逻辑放在更高的级别,即将 Foo 包装在 try 子句中。 最好用一些样本代码来演示。异常处理逻辑模糊了方法的意图,如果我有,许多相似意图的方法,在Foo类中,我发现自己重复了大部分catch逻辑。 在下面的代码中包装常见异常功能的最佳技术是什么?

  • 问题内容: 这些语句的第三行完全相同: 声明1 声明2 第三行也用于许多其他语句中,比如说30种不同的语句。在这个人为的示例中,它的意思是“我们从上载表中获取所有尚未删除或存档的文件”。如果将来我们需要在其中添加第三个限定符(例如),则必须编辑30个不同的sql语句。根本不干。我们如何在这里通过SQL使用MySQL的DRY原理(在我们的例子中为MySQL,如果这是一个重要因素)? 谢谢你的帮助。

  • 主要内容:1.DRY 原则,2.实现逻辑重复,3.功能语义重复,4.代码执行重复,5.注释重复,6.数据重复,7.提高代码复用性1.DRY 原则 它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 很多人对这条原则存在的误解。实际上,重复的代码不一定违反 DRY 原则,而且。 DRY不是只代码重复,而是“知识”的重复,意思是指业务逻辑。例如由于沟通不足,两个程序员用两种不同的方法实现同样功能的校验。 2.实现逻辑

  • 最近我用Pygame开发了一个视频游戏,我已经在一个文件上创建了菜单,在另一个文件上创建了游戏函数(总和),在另一个文件上创建了输入框(用户在其中写入答案)。我想在按下菜单的“开始”按钮时启动游戏功能(总和)。每个文件的名称如下:Menu-Suma-InputBox 这是菜单的代码。 下面是包含游戏本身的代码(总和)。 最后,这里是导入的InputBox的代码(不知道我是否真的需要使用它)。

  • 我正在使用下面的代码裁剪一个图像。当我打印裁剪的,它的显示和空数组。谁能帮我把这剪裁做好吗

  • 我被困在第2天:hackerrank上的操作员问题。任务如下:给定一顿饭的餐费(一顿饭的基本成本)、小费百分比(餐费的百分比作为小费添加)和税收百分比(餐费的百分比作为税收添加),查找并打印餐费的总成本。将结果四舍五入到最接近的整数。 这是我的代码: 截图