Javascript Chrome控制台显示同一变量的两个不同值
我正在使用P5.js库进行一个小项目,突然发现了一些奇怪的东西。我可能错了,但如果可能的话,我只想有人帮我澄清一下: 在这个例子中,我有两个类:ParticleBuilder和Particle。ParticleBuilder类只是一个具有创建粒子的函数的类,该粒子在末尾创建并返回:Javascript Chrome控制台显示同一变量的两个不同值,javascript,google-chrome,console,p5.js,Javascript,Google Chrome,Console,P5.js,我正在使用P5.js库进行一个小项目,突然发现了一些奇怪的东西。我可能错了,但如果可能的话,我只想有人帮我澄清一下: 在这个例子中,我有两个类:ParticleBuilder和Particle。ParticleBuilder类只是一个具有创建粒子的函数的类,该粒子在末尾创建并返回: class ParticleBuilder { constructor(){ this.particleTypeNumber = 0; this.xPosition = 0;
class ParticleBuilder {
constructor(){
this.particleTypeNumber = 0;
this.xPosition = 0;
this.yPosition = 0;
this.xVelocity = 0;
this.yVelocity = 0;
this.directionAngle = 0;
this.speed = 0;
this.rotationAngle = 0;
this.displayColor = color(0);
this.strokeWeightValue = 1;
this.displaySize = 10;
this.lifespanFrameCount = 60;
}
type(v) {
this.particleTypeNumber = v;
return this;
}
position(x, y) {
this.xPosition = x;
this.yPosition = y;
return this;
}
polarVelocity(dir, spd) {
this.directionAngle = dir;
this.speed = spd;
this.xVelocity = spd * cos(dir);
this.yVelocity = spd * sin(dir);
return this;
}
rotation(v) {
this.rotationAngle = v;
return this;
}
particleColor(v) {
this.displayColor = v;
return this;
}
weight(v) {
this.strokeWeightValue = v;
return this;
}
particleSize(v) {
this.displaySize = v;
return this;
}
lifespan(v) {
this.lifespanFrameCount = v;
return this;
}
lifespanSecond(v) {
this.lifespan(v * IDEAL_FRAME_RATE);
return this;
}
build() {
let newParticle = system.commonParticleSet.allocate();
newParticle.particleTypeNumber = this.particleTypeNumber;
newParticle.xPosition = this.xPosition;
newParticle.yPosition = this.yPosition;
newParticle.xVelocity = this.xVelocity;
newParticle.yVelocity = this.yVelocity;
newParticle.directionAngle = this.directionAngle;
newParticle.speed = this.speed;
newParticle.rotationAngle = this.rotationAngle;
newParticle.displayColor = this.displayColor;
newParticle.strokeWeightValue = this.strokeWeightValue;
newParticle.displaySize = this.displaySize;
newParticle.lifespanFrameCount = this.lifespanFrameCount;
return newParticle;
}
}
当我返回newParticle时,我控制台记录了ParticleBuilder和粒子本身,我得到的结果是。。。至少可以说是出人意料的
我的问题是:
1.为什么这两个类显示不同的值?
2.为什么大括号中的值与列表中的值不同。例如,xPosition在第一行是320,在列表中是0
我相当肯定我做错了什么,但好几天我都不知道是什么。
非常感谢您的帮助。您能展示一下调用该类的代码吗?您在哪里登录到控制台?这是日志记录:这是使用类的地方:生成器只是一个“new ParticleBuilder()”您可以直接在帖子中发布一个吗?去掉所有与问题不直接相关的代码(使用一个简单的示例,仅包含两个变量),并包括所有日志记录(我们应该能够复制并粘贴代码以自行运行)。最后,经过多次尝试,我设法制作了一个工作示例来展示这种奇怪:请记住,当我添加
Something
类时,它需要P5.js。如果我从setup()
中的doSomething()
函数中执行操作,它会显示正确的值。您能显示调用该类的代码吗?您在哪里登录到控制台?这是日志记录:这是使用类的地方:生成器只是一个“new ParticleBuilder()”您可以直接在帖子中发布一个吗?去掉所有与问题不直接相关的代码(使用一个简单的示例,仅包含两个变量),并包括所有日志记录(我们应该能够复制并粘贴代码以自行运行)。最后,经过多次尝试,我设法制作了一个工作示例来展示这种奇怪:请记住,当我添加Something
类时,它需要P5.js。如果我从setup()
中的doSomething()
函数执行操作,它将显示正确的值。