Задать вопрос
Dmitry-Mayorov
@Dmitry-Mayorov
Человек

Почему выдаёт ошибку Uncaught TypeError: ctx.clearRect is not a function?

Не понимаю почему выдаёт ошибку при запуске. Говорит мол ctx.clearRect нет.606a3f1b8819a352869190.png
Данная ошибка возникает при добавлении window.requestAnimationFrame, как от неё избавиться, я не знаю, в интернете об этом ничего не сказано. Но даже при ошибке код продолжает выполнять функцию до конца, но не повторно.

Вот код, где располагается clearRect.

let mater = [];
let objects = 100;

function start(ctx) {
   loop();
   draw(ctx);
}

function loop() {
   for (let i = 0; i < objects; i++) {
      let polly = new Polly(Math.random() * World.w, Math.random() * World.h, 0, 0.1, 0.1);
      mater.push(polly);
   }
}

function draw(ctx) {
   ctx.clearRect(0, 0, 500, 500);
   for (let i = 0; i < objects; i++) {
      let ob = mater[i];
      ctx.fillRect(ob.x, ob.y, ob.w, ob.h);
   }
   window.requestAnimationFrame(draw);
}
  • Вопрос задан
  • 292 просмотра
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
window.requestAnimationFrame(draw.bind(null, ctx));

либо выносите контекст глобально либо в модуль.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FoxSay
@FoxSay
ты вызываешь функцию draw но при этом не передаешь её свойство
window.requestAnimationFrame(draw);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы