Mecanografiado: el miembro privado está repentinamente indefinido

Por lo tanto, tengo una aplicación básica de Typescript, que en realidad no debería causar problemas importantes, pero parece que algo va mal aquí y no tengo idea de qué.

Tengo este miembro privadominUpdateRate en miGameContainer Clase, que se inicializa en el constructor. Esto parece ir bien, porque cuandoGameContainer.start() se llama, elconsole.log() el método se imprimirá1.

Sin embargo, cuando elGameContainer.render() método se llama, parece estar fuera del alcance o algo así, las salidas del método de registroundefined ahí.

Soy bastante nuevo en TypeScript y tampoco soy tan profundo en JavaScript (especialmente cuando se trata de ámbitos, me está confundiendo: /). ¿Cómo puedo sin embargo resolver esto?

Clase principal:

class TwoDGame extends Game {
    public static main(context:CanvasRenderingContext2D) {
        var game:Game = new TwoDGame();
        var container:GameContainer = new GameContainer(context, game);

        container.start();

        return game;
    }
}

Clase de contenedor de juego:

class GameContainer {
    ...
    private minUpdateRate:number;
    private game:Game;
    private time:number;
    ...

    constructor(context:CanvasRenderingContext2D, game:Game) {
        ...
        this.minUpdateRate = 1;
        this.game = game;
    }

    public start() {
        ...
        console.log(this.minUpdateRate);
    }

    public render() {
        var now:number = new Date().getMilliseconds();
        var delta:number = now - this.time;
        console.log(this.minUpdateRate);

        if (delta > this.minUpdateRate) {
            ...
        }
    }
}

Render se llama a través de setInterval en el área de script:

var game = TwoDGame.main(context);

setInterval(game.getGameContainer().render, 16);

Respuestas a la pregunta(1)

Su respuesta a la pregunta