1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
/* イテレータリザルト:valueとdoneを持つオブジェクト イテレータ:イテレータリザルトを返却するメソッドnextを持つオブジェクト イテラブルなオブジェクト:イテレータを返却するメソッド[Symbol.iterator]を持つオブジェクト スプレッド構文:イテラブルなオブジェクトを展開する構文...。実行結果は配列にはならない */ 'use strict'; const p = console.log; const myIterableObject = { [Symbol.iterator]: () => { let cnt = 100; const iterator = { next: () => { if (cnt < 105) { return { value: cnt++, done: false }; } return { value: undefined, done: true }; }, }; return iterator; }, }; const mainSpread = () => { p(...myIterableObject); p(...[1, 2, 3, 4, 5]); p(...[1, 2, 3, 4, 5].keys()); }; // module.exports = mainSpread; mainSpread(); |
1 2 3 |
100 101 102 103 104 1 2 3 4 5 0 1 2 3 4 |