1

次のエクスポートされたオブジェクトがあります。

module.exports = {
    value: 0,

    startTimer: function() {
        setInterval(function() {
            value++;
        }, 1000);
    }
}

valueその setInterval 関数からどのようにアクセスできますか? 前もって感謝します。

4

1 に答える 1

2

値へのフル パスを指定することもできます。

module.exports = {
    value: 0,

    startTimer: function() {
        setInterval(function() {
            module.exports.value++;
        }, 1000);
    }
}

または、 によって呼び出される関数を にバインドする場合はsetTimeoutthis次を使用できますthis

module.exports = {
    value: 0,

    startTimer: function() {
        setInterval(function() {
            this.value++;
        }.bind(this), 1000);
    }
}

これは、時々目にする次のようなコードに似ています。

module.exports = {
    value: 0,

    startTimer: function() {
        var self = this;
        setInterval(function() {
            self.value++;
        }, 1000);
    }
}
于 2012-11-25T19:14:23.733 に答える