我正在使用HTML画布并使用Javascript在其上写一些文本。
在这样做时,我做了一个简单的错误,花了我一些时间才找到。我写道:
context.fillText = ("My message", x-coord, y-coord);
等号阻止了我预期的行为。但有一件事我没有得到:为什么这段代码在Chrome的Javascript控制台中没有给我错误?
这是有效的Javascript吗?如果是:你能解释代码在等号出现时的作用吗?
答案 0 :(得分:6)
是的,这是有效的Javascript。它使用的是comma operator,它只是评估左边的表达式,然后是右边的表达式,并返回右边的表达式的值。
由于表达式"My message"
和x-coord
没有副作用,因此它与以下内容相同:
context.fillText = y-coord;
或者:
"My message"; // Does nothing
x-coord; // Does nothing
context.fillText = y-coord;
答案 1 :(得分:4)
答案 2 :(得分:1)
如果你问的是
之间的区别 context.fillText = ("My message", x-coord, y-coord);
和
context.fillText("My message", x-coord, y-coord);
答案是你将=
符号右侧的表达式赋给context.fillText
,因此试图覆盖方法本身,而不是用参数调用它。