Получить объект в обратном вызове функции-члена

У меня есть объект с методом, который я хотел бы передать функции в качестве обратного вызова. Однако внутри обратного вызова this больше не относится к моему объекту. Почему бы и нет?

Я знаком с использованием переменных, чтобы обойти проблему при передаче функционального литерала:

var obj = {
    a: function () {
        var me = this;

        console.log(this);

        setTimeout(function () {
            console.log(this); // Not obj
            console.log(me);   // This works!
        }, 100);
    }
};

Как я могу исправить это в этом случае?

var obj = {
    b: function () {
        setTimeout(this.callback, 100);
    },
    callback: function () {
        console.log(this); // =(
    }
};
7
задан Ry- 19 May 2014 в 16:12
поделиться