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