Javascript p5.js脚本使用空变量失败?

Javascript p5.js脚本使用空变量失败?,javascript,class,global-variables,undefined,p5.js,Javascript,Class,Global Variables,Undefined,P5.js,我是如此接近完成一个脚本,我已经战斗了2个月了。(p5.js图形) 我的问题是: 我有一个变量,应该根据下拉选择进行更新 当我给变量一个设置值时,脚本就工作了 当我将其留空以通过下拉选择器侦听功能进行更新时。脚本运行时使用了未定义的变量 在某个时刻,我失去了更新程序函数设置的值,我似乎无法找到位置和方式。有什么建议吗 以下是指向构建的链接: 谢谢你抽出时间 有趣的项目,我喜欢粒子/分子模拟。 首先是最明显的问题;为什么不将变量设置为初始值呢 这似乎是一个逻辑问题。代码中的路径/流程可能会更

我是如此接近完成一个脚本,我已经战斗了2个月了。(p5.js图形) 我的问题是:

  • 我有一个变量,应该根据下拉选择进行更新
  • 当我给变量一个设置值时,脚本就工作了
  • 当我将其留空以通过下拉选择器侦听功能进行更新时。脚本运行时使用了未定义的变量
  • 在某个时刻,我失去了更新程序函数设置的值,我似乎无法找到位置和方式。有什么建议吗
以下是指向构建的链接:


谢谢你抽出时间

有趣的项目,我喜欢粒子/分子模拟。 首先是最明显的问题;为什么不将变量设置为初始值呢

这似乎是一个逻辑问题。代码中的路径/流程可能会更好

如果不设置“f”变量,则该变量为“未定义”。在设置中添加水和空气分子。但在分子类的构造器中有这样一个:

this.f = f;
this.speed_x = random(-f,f);
this.speed_y = random(-f,f);
随机(-undefined,undefined)是什么?这个数字并不存在

在当前代码中,您只能在设置全局“f”变量时添加分子,这似乎是一个糟糕的做法。您可以在设置“f”变量后添加分子,使用初始值,或在更改“f”变量后更新分子中的这些值

此外,对“f”变量的更改永远不会传递给现有的分子,您只会更改全局“f”变量


还有一件事没有必要每帧都检查速度。仅当dropbox中的值更改时。不要在draw函数中调用speed,而是将其添加到setup函数中:

var temp = document.getElementById("molshake");
temp.addEventListener('change', speed);
这将向事件“onchange”添加一个侦听器,当dropbox发生更改时,它将调用speed()