21

ES6 を学習しようとしてサンプルをコピーしていますが、コンパイル エラーが発生します。

Unexpected token (2:5)

count = 0; を参照しているようです。

私は何を間違っていますか?

class Counter {
    count = 0;

    constructor() {
        setInterval(function() {
            this.tick();
        }.bind(this), 1000);
    }

    tick() {
        this.count ++;
        console.log(this.count);
    }
}
4

3 に答える 3

27

ES2015 では、class構文を使用する場合、コンストラクターまたはいずれかのメソッドでインスタンス変数を定義する必要があります (構文を許可するために、次の反復である ES2016 の提案があります: ES Class Fields & Static Properties )

class Counter {

    constructor() {
        this.count = 0;
        setInterval(function() {
            this.tick();
        }.bind(this), 1000);
    }

    tick() {
        this.count++;
        console.log(this.count);
    }
}

var c = new Counter();

フィドルをチェックしてください:

http://www.es6fiddle.net/ifjtvu5f/

于 2015-10-09T15:49:47.833 に答える