Вызов метода объекта javascript из обратного вызова

Я определяю следующее wing MyClass и его методы в пользовательском скрипте:

function MyClass() {
    this.myCallback = function() {
        alert("MyClass.myCallback()");
    };

    this.startRequest = function() {
        GM_xmlhttpRequest({
            'method': 'GET',
            'url': "http://www.google.com/",
            'onload': function (xhr) {
                myClassInstance.myCallback();
            }
        });
    };
}

var myClassInstance = new MyClass();
myClassInstance.startRequest();

Этот скрипт работает, и метод myCallback () вызывается после завершения GM_xmlhttpRequest .

Однако это работает только потому, что обратный вызов onload обращается к глобальной переменной myClassInstance . Если я обновляю обратный вызов onload до:

'onload': function (xhr) {
    this.myCallback();
}

, то получаю ошибку (Chrome):

Uncaught TypeError: Объект [объект DOMWindow] не имеет метода myCallback.

Кажется, этот оценивается в неправильном контексте.

Есть ли способ вызвать метод myCallback () из myClassInstance , не прибегая к использованию глобального переменная?

19
задан T D Nguyen 5 May 2016 в 23:54
поделиться