Javascript if和draw语句的顺序

Javascript if和draw语句的顺序,javascript,Javascript,解决-,有效的代码是 draw = function() { if (mouseIsPressed) { ellipse(mouseX, mouseY, 20, 20); } }; 为什么不能在if语句下调用draw函数- if (mouseIsPressed) { draw = function() { ellipse(mouseX, mouseY, 20, 20); }; } 要获得相同的结果?挑战为您提供了一种绘制椭圆的方法draw。如演示中所示,在画布

解决-,有效的代码是

draw = function() {
  if (mouseIsPressed) {
    ellipse(mouseX, mouseY, 20, 20);
  }
};
为什么不能在if语句下调用draw函数-

if (mouseIsPressed) {
  draw = function() {
    ellipse(mouseX, mouseY, 20, 20);
  };
}

要获得相同的结果?

挑战为您提供了一种绘制椭圆的方法
draw
。如演示中所示,在画布区域中移动鼠标会在每个可能的时刻绘制一个椭圆

如果您要像下面这样围绕draw的整个定义:

if (mouseIsPressed) {
   draw = function() {
      ellipse(mouseX, mouseY, 20, 20);
   };
}
本质上,您是在设置一个条件,以确定
draw
是否是基于定义时按下鼠标而定义的。或者换一种说法,
draw
是被调用的函数,因此如果没有定义它,它就永远不会被调用。
draw
的内容确定发生此事件时要做(或不提示)什么


不过我还要补充一点,鼠标点击有一个实际的事件。这可能超出了挑战的范围,但需要指出的是,如果要实现这一点,您不会在未按下鼠标的情况下限制绘制圆圈,而是只在鼠标单击事件上绘制圆圈。

您所说的“颠倒顺序”到底是什么意思?@mrJoe我的意思是调用if语句下的draw函数,因为这样你只能在“mouseIsPressed”时定义函数,而不是每次按下鼠标时定义一次。然后您将覆盖先前定义的函数。@mrJoe,这是不可能的。这是一个互动的环境谢谢你编辑这个问题。我很困惑,因为您谈到调用
draw
函数,而实际上,无论是在第一个示例中还是在第二个示例中,您都没有调用它。