Ссылка на self при обратном вызове

#nativescript

#nativescript

Вопрос:

Мой код таков:

 class myclass observable.Observable
{
    let label = "test";

    navigatingTo(args: observable.EventData)
    {
        target.on( "name", this._callback );
    }

    _callback ( eventData )
    {    
         console.log( this.label);
    }
}
 

Когда я распечатаю это.метка в обратном вызове — «этот» объект — это не тот объект, который я ожидаю, который, я думаю, должен быть экземпляром myclass.

У меня есть отдельный метод для обратного вызова, потому что я также вызываю .off() позже и мне нужна ссылка на метод (в отличие от анонимной функции).

Комментарии:

1. Можете ли вы опубликовать полный код вашего примера (также XML) — это помогло бы получить полную картину.

Ответ №1:

Вы можете передать третий аргумент при подписке с on() помощью . Третий аргумент будет использоваться в качестве контекста (this) для обратного вызова. Так что, вероятно, вы хотите сделать:

 target.on("name", this._callback, this);