i trying write dry code multiple canvas. applying gradients chartjs charts , don't want rewrite same gradient each chart instance. var ctx1 = $("#softwarechart").get(0).getcontext("2d"); var ctx2 = $("#webchart").get(0).getcontext("2d"); var gradient1 = ctx1.createlineargradient(0, 0, 0, 400); gradient1.addcolorstop(0, '#ff9170'); gradient1.addcolorstop(1, '#ff3f05'); var gradient2 = ctx1.createlineargradient(0, 0, 0, 400); gradient3.addcolorstop(0, '#f5d147'); gradient3.addcolorstop(1, '#dfb30c'); var gradient1 = ctx2.createlineargradient(0, 0, 0, 400); gradient1.addcolorstop(0, '#ff9170'); gradient1.addcolorstop(1, '#ff3f05'); var gradient2 = ctx2.createlineargradient(0, 0, 0, 400); gradient3.addcolorstop(0, '#f5d147'); gradient3.addcolorstop(1, '#dfb30c'); as can see, not dry, , hate it. there way .getcontext on canvas want use , apply gradients of them...