定义我是相当新的面向对象的东西,所以这很可能是错误的方式是想约能完成这一操作。更新对象的JavaScript中
这是什么,我现在有一个非常简化版本,但在概念本质上是相同的。当用户在我的页面上点击一个画布元素时,我在下面创建了20个粒子对象实例,将它们追加到一个数组中,同时以30FPS更新画布并基于每个实例的x属性绘制圆圈目的。一旦粒子离开屏幕,它将从阵列中移除。
var particle = function()
{
var _this = this;
this.velocity = 1;
this.x = 0;
this.updateVelocity = function(newVelocity)
{
_this.multiplier = newVelocity;
}
var updateObject = function()
{
_this.x += velocity;
}
}
我希望用户能够控制使用页面上的输入元素创建的新粒子的速度。当这个更新时,我有一个事件监听器调用
particle.updateVelocity(whateverTheUserEntered);
但是,我得到错误“粒子没有方法updateVelocity”。在了解了这个主题之后,我明白要调用这个函数,我需要创建一个对象的实例,但这只会更新那个不适合我的实例的速度值。
我的问题是,有没有办法实现我在做什么或曾经我完全错误的方式接近这一点?正如我所说的,我仍然得到,所以我可能只是回答我自己的问题与OOP原则交手......
是你调用它放在*实例*粒子? 'p = new Particle(); p.updateVelocity(whateverTheUserEntered);'? –