抽象类方法调用的for-of循环
Abstracting for-of loop out of class method calls
我正在使用一个类,其中每个方法都在同一个列表上操作,但是,我正在寻找一种有效的方法来抽象出每个方法体的循环特性,因为它几乎存在于每个块中。
例如,目前我正在做这样的事情:
class example {
constructor(list) {
....
}
....
someFunc(param) {
for (let elem of this.list) {
elem.doSomething();
}
}
someOtherFunc(param) {
for (let elem of this.list) {
elem.doSomethingElse();
}
}
}
理想情况下,我希望能够在不使用for of
循环的情况下调用这些方法,因为它会导致冗余代码。我想知道我是否可以通过其他方式实现这个目标?
是的,您可以从Array.prototype.forEach()
中获得灵感,并为您的对象实现.each()
方法:
class example () {
each(callback) {
for (let elem of this.list) {
callback(elem);
}
}
someFunc(param) {
this.each(x => x.doSomething());
}
}
如果list
实现了一个数组,你只想做上面的简单循环,那么有更好的消息,它已经为你实现了Array.prototype.forEach()
:
class example () {
someFunc(param) {
this.list.forEach(x => x.doSomething());
}
}
自定义.each()
实现当然允许您在for
循环中做其他事情,因此您可以抽象出更多的代码。
相关文章:
- 我没有'I don’我不理解for在循环中的用途
- 如何使用for in循环在javascript中显示对象中的对象
- 为什么我在下面的..of循环中得到意外令牌
- for.in循环在非数字索引“clean”和“remove”上循环
- 在 JavaScript 中使用 for in 循环从对象中获取值
- p5.js:如何访问for()循环中的元素以进行滚动
- hasOwnProperty在For in循环中总是返回False
- Why For-in循环返回'arg'当循环为空时
- 使用For each循环-jquery创建变量
- 如何更改 for-of 循环中的元素
- 为什么在 for.of 循环中具有两个变量名称的示例代码不起作用
- 如何在for of循环中访问i的当前编号
- 如何使for of循环向下迭代,而不是通过数组向上迭代
- TypeScript编译器无法在for of循环中找到immutable.js Map迭代器
- SyntaxError:带有for的意外标识符.nodejs中的Of循环
- ES6中的多个for-of循环定义
- 在for-of循环中使用多个参数的ES6数组销毁
- 使用for-of循环迭代HTMLCollection对象
- Javascript for-of循环遍历数组,并将值传递到ul上的for-of循环
- 抽象类方法调用的for-of循环