回答編集履歴
1
続き
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
|
+
|