javascript - canvas.width=canvas.width 在内部是如何工作的?

标签 javascript html dom canvas html5-canvas

我知道下面的代码清除了 Canvas

canvas.width = canvas.width

但这在内部是如何工作的呢?

赋值运算符只是将一些值赋给变量,但是上面的代码如何清除 Canvas ?

根据 JavaScript 规则。赋值运算符的作用只是为某个变量赋值。

但是有没有办法通过给变量赋值来调用其他函数呢?

最佳答案

当你设置一个新值时,一些浏览器不会检查它是否与旧值相同,而是继续并在内部重新分配一个新位图(因此清除)(高-level 语言可能会给人一种错觉,你可以动态改变位图大小,但事实并非如此。需要释放旧内存,然后再分配新内存)。

右边的参数被 JavaScript 引擎“翻译”成它所持有的值,因此它与任何其他值一样被传递。

但是,这不是清除 Canvas 的推荐方法。它现在可能在某些浏览器中工作,但在未来不确定,因为这不是规范的一部分。

关于javascript - canvas.width=canvas.width 在内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522134/

相关文章:

用于插入文本的 Javascript 工具提示功能

java - 在 Java 中获取 xhtml 文档的 DOM

javascript - 如何从 <iframe> 启动 javascript?

javascript - 查找包含点的键并替换为@

jquery - 检查选择元素是否具有特定类并将该类添加到不同的 div

Javascript点击功能一次只选择第一个元素或所有元素

python - Pyramid :sqlalchemy.exc.OperationalError

javascript - 使用 'document' 命名我的变量是否合法?

javascript - .then(Promise.mapSeries(...)) 的行为是否与 .then(function() { return Promise.mapSeries(...); }) 不同?

javascript - 如何使用 html2canvas 获取图像的屏幕截图?