回答編集履歴

1

続き

2022/11/13 09:31

投稿

BeatStar
BeatStar

スコア4956

test CHANGED
@@ -39,3 +39,22 @@
39
39
 
40
40
  その処理をするアロー関数をnextとする。つまりnext関数を定義してますね。
41
41
 
42
+ > ③ このSymbol.iteratorのメソッドの定義はなぜ必要なのでしょうか。
43
+ > イテラブルなものはSymbol.iteratorのメソッドを元から持っているので、Symbol.iteratorのメソッドの定義は必要ないように思います。
44
+ > messagesに対するSymbol.iteratorとして設定するためでしょうか?
45
+
46
+ それは配列 messagesの方ですよね? Logクラスの方ではありません。
47
+ そして、ちょっと``[Symbol.iterator]()``という書き方は私にとっては初めて見たので調べてみました。
48
+ 「JavaScript Symbol.iterator」でggると、[反復可能なオブジェクト - javascript.info](https://ja.javascript.info/iterable)がヒットしました。
49
+ こちらによると、
50
+
51
+ ```JavaScript
52
+ let logList = new Log();
53
+ // 何らかの処理
54
+ for (let log of logList) {
55
+ alert(log);
56
+ }
57
+ ```
58
+
59
+ のようにfor...of...でそのまま使えるようにするための定義らしいです。(for...ofが内部で使うためだと思う)
60
+