javascript - 创建一个函数来执行一个小的重复任务是一种反模式吗?

标签 javascript typescript function design-patterns anti-patterns

我正在尝试学习编程的最佳实践,并希望让我的代码尽可能干净,但也可维护。例如,我正在运行一个等待创建每个元素的程序。

a.waitForElementToAppear(50000);
b.waitForElementToAppear(50000);
c.waitForElementToAppear(50000);

现在,我添加了一个函数,这样我就可以轻松更改 50000,而无需手动编辑每个:

function waitForElement(element) {
    element.waitForElementToAppear(5000);
}

并将上面的代码更改为:

waitForElement(a);
waitForElement(b);
waitForElement(c);

创建一个新函数来调用一个相对较小的任务是否是一种反模式?有没有更好的方法?

最佳答案

Is it an anti-pattern to create a new function to call for a relatively small task?

不,绝对没问题!虽然你是对的,你的功能太小了,几乎没有任何收获。

Is there a better approach?

为了实现轻松更改共享参数值的目标,您可以或者(不一定“更好”)也将其放入变量中:

const time = 50000;
a.waitForElementToAppear(time);
b.waitForElementToAppear(time);
c.waitForElementToAppear(time);

最后但同样重要的是,该代码仍然有点重复。另一种选择是循环(尽管这三项只是合理循环的阈值):

for (const element of [a, b, c]) {
    element.waitForElementToAppear(5000);
}

关于javascript - 创建一个函数来执行一个小的重复任务是一种反模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61237325/

相关文章:

javascript - 如何根据当前时间禁用时隙

Angular 8 Http获取没有缓存的请求

typescript - 从 Typescript 到 Javascript => required 未在 chrome 浏览器中定义

c++ - 编写重新排序函数

javascript - 弹出窗口设置焦点

javascript - 当不再悬停时延迟隐藏 CSS 子菜单

javascript - 使用 JavaScript 向下钻取选择选项

javascript - Angular 8 : (keyup. 输入)不触发只读 html 输入

c++ - 如何使用 Eigen 在函数中访问/写入矩阵?

javascript - Redux-thunk: `dispatch is not a function`