比較して見ると、複雑な箇所が分かりやすいかもね

let i = 4;
while (i--) obj.a();

for (let i = 0; i < 4; i++) obj.a();

for (let v of [4,3,2,1]) obj.a();

[4,3,2,1].reduce(()=> obj.a());