У меня есть прототип Sprite с функцией конструктора...
function Sprite(img) {
for (var property in img) this[property] = image[property];
}
... который принимает объект изображения и делает его копию. Теперь я пытаюсь нарисовать спрайт с помощью drawImage:
Sprite.prototype.draw = function(ctx, x, y) {
ctx.drawImage(this, x, y);
}
это дает мне ошибку:
Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': No function was found that matched the signature provided.
однако, если я использую фактический объект изображения и в остальном тот же точный код, т.е.:
Sprite.prototype.draw = function(ctx, x, y) {
ctx.drawImage(img, x, y);
}
он работает именно так, как должен (img — это глобальное имя объекта изображения).
Это весь код прототипа Sprite. Я не понимаю, в чем разница, из-за которой это происходит, поскольку я добавил только одну функцию в Sprite; рисовать.