Джон Резиг Наследование и Холст .getContext - PullRequest
0 голосов
/ 26 марта 2011

я пытаюсь запустить это:

var Engine = Class.extend({
    canvas_id: 'canvas',
    canvas: '',
    context: '',
    init: function(canvas_id) {
        console.log('init: Setting this.canvas_id to ' + canvas_id);
        this.canvas_id = canvas_id;
    },
    begin: function() {
        console.log('begin: Getting element with ID ' + this.canvas_id);
        this.canvas = document.getElementById(this.canvas_id);
        console.log(this.canvas_id);
        console.log('begin: Set this.canvas', this.canvas)
        this.context = this.canvas.getContext('2d');
        this.context.fillText("Hello World!", 10, 10);
    }
});

Но в консоли выдается ошибка:

init: Setting this.canvas_id to canvas
begin: Getting element with ID canvas
canvas
begin: Set this.canvas null
> Uncaught TypeError: Cannot call method 'getContext' of null <

Как исправить эту ошибку?

1 Ответ

0 голосов
/ 02 декабря 2011

Я думаю, что это может быть связано с областью действия переменной canvas в вашем случае и вашим использованием this. В примере Джона Резига все эти свойства являются примитивными типами, принадлежащими этому классу. Но фактический объект canvas в вашей разметке не принадлежит вашему экземпляру класса.

Вы пытались удалить "это" из холста и контекста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...