我知道下面的代码清除了 Canvas
canvas.width = canvas.width
但这在内部是如何工作的呢?
赋值运算符只是将一些值赋给变量,但是上面的代码如何清除 Canvas ?
根据 JavaScript 规则。赋值运算符的作用只是为某个变量赋值。
但是有没有办法通过给变量赋值来调用其他函数呢?
最佳答案
当你设置一个新值时,一些浏览器不会检查它是否与旧值相同,而是继续并在内部重新分配一个新位图(因此清除)(高-level 语言可能会给人一种错觉,你可以动态改变位图大小,但事实并非如此。需要释放旧内存,然后再分配新内存)。
右边的参数被 JavaScript 引擎“翻译”成它所持有的值,因此它与任何其他值一样被传递。
但是,这不是清除 Canvas 的推荐方法。它现在可能在某些浏览器中工作,但在未来不确定,因为这不是规范的一部分。
关于javascript - canvas.width=canvas.width 在内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522134/