[JavaScript] setIntervalでthisを使う場合

9:52 AM on 2010年10月30日

var test = {
    val : 1,
    func : function() {
    setInterval(function() { exec(); }, 100);
    function exec() {
        alert(this.val);
    }
};

alertで表示されるのは「null」。
「1」を表示させるためには以下のようにする。

var test = {
    val : 1,
    func : function() {
    var self = this;
    setInterval(function() { exec(); }, 100);
    function exec() {
        alert(self.val);
    }
};