【发布时间】:2016-05-30 08:42:05
【问题描述】:
例如,如果我的游戏中有一个渲染函数,它会以相当高的速率(由 requestAnimationFrame 确定)被调用,例如:
function render() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.arc(player.x, player.y, player.size / 2, 0, Math.PI * 2);
ctx.fillStyle = "#6f00ff";
ctx.fill();
}
为什么不简单地将其全部包含在 with 语句中?
function render() {
with (ctx) {
clearRect(0, 0, canvas.width, canvas.height);
beginPath();
arc(player.x, player.y, player.size / 2, 0, Math.PI * 2);
fillStyle = "#6f00ff";
fill();
}
}
这是一个好主意/做法吗?如果没有,为什么不呢?
编辑 ///////
对于不知道什么是 HTML5 画布的你们:
canvas 是对 <canvas> DOM(文档对象模型)元素的引用,可能看起来像这样:
var canvas = document.getElementsByTagName("canvas")[0];
而 ctx 是对:
var ctx = canvas.getContext("2d");
【问题讨论】:
标签: javascript html canvas with-statement