"This" do componente Angular2 é indefinido ao executar a função de retorno de chamada

Eu tenho um componente que chama um serviço para buscar dados de um ponto de extremidade RESTful. Esse serviço precisa receber uma função de retorno de chamada para executar após a busca dos dados.

O problema é quando tento usar a função de retorno de chamada para anexar os dados aos dados existentes na variável de um componente, recebo umaEXCEPTION: TypeError: Cannot read property 'messages' of undefined. Porque éthis Indefinido?

Versão TypeScript: Versão 1.8.10

Código do controlador:

import {Component} from '@angular/core'
import {ApiService} from '...'

@Component({
    ...
})
export class MainComponent {

    private messages: Array<any>;

    constructor(private apiService: ApiService){}

    getMessages(){
        this.apiService.getMessages(gotMessages);
    }

    gotMessages(messagesFromApi){
        messagesFromApi.forEach((m) => {
            this.messages.push(m) // EXCEPTION: TypeError: Cannot read property 'messages' of undefined
        })
    }
}

questionAnswers(4)

yourAnswerToTheQuestion