我知道下面的代码会清除画布
canvas.width = canvas.width
但这如何在内部发挥作用?
赋值运算符只是为变量赋值,但上面的代码如何清除画布?
根据JavaScript规则。赋值运算符只是为某个变量赋值。
但是,有没有办法通过为变量赋值来调用其他函数?
答案 0 :(得分:5)
当你设置一个新值某些浏览器不会检查它是否与旧的相同,只是继续并在内部重新分配一个新的位图(因此清除)级别的语言可能会产生一种错觉,你可以动态地改变位图大小,但事实并非如此。需要释放旧内存,然后重新分配。)
右手参数被“翻译”为JavaScript引擎所拥有的值,因此它的传递方式与任何其他值一样。
但是,这是不清除画布的推荐方法。它现在可能在某些浏览器中有效,但在将来它不确定,因为这不是规范的一部分。