ESでIterableなクラスを作る


ES2015 ClassesでIterableなClassを作りたいです  
Pythonだと`__iter__`と`__next__`というメソッドを実装すればIterableなクラスを作成できますが、ESではどうすればいいのでしょうか?




プロパティ名が`Symbol.iterator`シンボルであるメソッドを定義します。  
また、Generator メソッドにすると楽です。

[code]

    class A {
        *[Symbol.iterator]() {
            yield 1;
            yield 2;
            yield 3;
        }
    }
    
    const a = new A();
    for (const item of a) {
        console.log(item); // 1 2 3
    }
    
[/code]

他の例:

[code]

    class B {
        constructor() {
           this._list = [1,2,3];
        }
    
        *[Symbol.iterator]() {
            for (const item of this._list) {
                yield item;
            }
        }
    }
    
    const b = new B();
    for (const item of b) {
        console.log(item); // 1 2 3
    }
    
[/code]




プロパティ名が`Symbol.iterator`シンボルであるメソッドを定義します。  
また、Generator メソッドにすると楽です。

[code]

    class A {
        *[Symbol.iterator]() {
            yield 1;
            yield 2;
            yield 3;
        }
    }
    
    const a = new A();
    for (const item of a) {
        console.log(item); // 1 2 3
    }
    
[/code]

他の例:

[code]

    class B {
        constructor() {
           this._list = [1,2,3];
        }
    
        *[Symbol.iterator]() {
            for (const item of this._list) {
                yield item;
            }
        }
    }
    
    const b = new B();
    for (const item of b) {
        console.log(item); // 1 2 3
    }
    
[/code]

