рисование на нескольких холстах будет крайне неэффективным, поскольку рендеринг является одной из самых дорогих операций, которые вы можете сделать.
что вы хотите сделать, это использовать буфер. Вы можете просто рисовать с одного холста на другой.
var canvas1 = document.getElementById("canvas1");
var canvas2 = document.getElementById("canvas2");
var ctx1 = canvas1.getContext("2d");
var ctx2 = canvas2.getContext("2d");
ctx1.fillStyle = "black";
ctx1.fillRect(10, 10, 10, 10);
ctx2.drawImage(canvas1, 0, 0);
вот скрипка .
помните, вам нужно всего лишь один раз вызвать ctx.drawImage
- после того, как вы закончите со всем рисованием на первом холсте.