3

我知道下面的代码清除了画布

canvas.width = canvas.width

但这在内部如何运作?

赋值运算符只是为变量赋值,但是上面的代码是如何清除画布的呢?

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

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

4

1 回答 1

5

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

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

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

于 2013-07-08T12:45:27.507 回答