El componente "esto" de Angular2 no está definido al ejecutar la función de devolución de llamada

Tengo un componente que llama a un servicio para obtener datos de un punto final RESTful. Este servicio necesita una función de devolución de llamada para ejecutarse después de recuperar dichos datos.

El problema es que cuando trato de usar la función de devolución de llamada para agregar los datos a los datos existentes en la variable de un componente, obtengo unEXCEPTION: TypeError: Cannot read property 'messages' of undefined. Por que esthis indefinido?

Versión de TypeScript: Versión 1.8.10

Código del 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
        })
    }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta