Javascript 未捕获类型错误:调用push()时出现类型错误

Javascript 未捕获类型错误:调用push()时出现类型错误,javascript,Javascript,我试图在画布上模拟烟雾。我想创建一个新的烟团,并将其推送到烟团数组中,但我一直收到的“uncaughttypeerror:Type error”错误。 有人知道我错过了什么吗 var puffs = []; this.tick = function() { var puffLength = puffs.length; if ( addPuffs && ( puffLength < maxParticles )) { puffs.push({

我试图在
画布上模拟烟雾。我想创建一个新的烟团,并将其推送到烟团数组中,但我一直收到
的“uncaughttypeerror:Type error”
错误。
有人知道我错过了什么吗

var puffs = [];

this.tick = function() {
    var puffLength = puffs.length;
    if ( addPuffs && ( puffLength < maxParticles )) {
        puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
            posX: oPoint.x,
            posY: oPoint.y,
            scale: .1,
            age: 0
        });
    }

    for(var i = 0; i < puffLength; i++) {

        var currentPuff = puffs[i];

        if(currentPuff.age == maxLife) {
            puffs.splice(i, 1);
        } else {
            currentPuff.posX += windX,
            currentPuff.posY += windY,
            currentPuff.scale += growingSpeed,
            currentPuff.age++;
        }

    }

    this.render();

}
var-puffs=[];
this.tick=函数(){
var puffLength=烟团长度;
如果(添加烟团和(烟团长度<最大粒子)){
puff.push({//这一个是什么给了我错误
posX:oPoint.x,
posY:oPoint.y,
比例:.1,
年龄:0
});
}
对于(var i=0;i
在提供的小提琴中,
addPuffs
未定义。您需要根据业务逻辑定义此变量。另外,未定义
oPoint.x
oPoint.y
,也必须根据您的业务逻辑对其进行初始化

var oPoint = {x:1, y:2}; //declare according to logic
var addPuffs = true; //some logic here
if ( addPuffs && ( puffLength < maxParticles )) {
    puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
        posX: oPoint.x,
        posY: oPoint.y,
        scale: .1,
        age: 0
    });
}

在提供的提琴中,未定义
addPuffs
。您需要根据业务逻辑定义此变量。另外,未定义
oPoint.x
oPoint.y
,也必须根据您的业务逻辑对其进行初始化

var oPoint = {x:1, y:2}; //declare according to logic
var addPuffs = true; //some logic here
if ( addPuffs && ( puffLength < maxParticles )) {
    puffs.push({ //THIS ONE IT WHAT GIVES ME THE ERROR
        posX: oPoint.x,
        posY: oPoint.y,
        scale: .1,
        age: 0
    });
}

什么是
oPoint.x
oPoint.y
?前面定义了几个变量(oPoint.x和oPoint.x是x/y坐标),您想让我设置一个小提琴吗?这会很有帮助,我怀疑它是这些变量中的一个。给你:什么是
oPoint.x
oPoint.y
?有几个变量在前面定义过(oPoint.x和oPoint.x是x/y坐标),你想让我设置一个小提琴吗?这会很有帮助,我怀疑它是这些变量中的一个。给你:AddPuff已经定义好了(当用户滚动时是真的,当它停止时变为假)。很抱歉没有提前告诉您如果定义了,那么您需要关注
oPoint
我尝试了这个:console.log(oPoint.x,oPoint.y,addPuffs)它的日志为0.7774077543755 56.283392898185674 false。因此,错误必须在其他地方。即使使用:puff.push({posX:5,posY:5,scale:.1,age:0}),我也会得到此错误;我明白了。我认为问题出在那里,因为当我开始滚动时,我开始按,它开始记录错误。但这一刻与它开始在画布上绘图一样,错误出现在drawImage()调用中。我将字符串作为源传递给它,而不是实际的new Image()addPuffs已定义(当用户滚动时是真的,当它停止时变为假)。很抱歉没有提前告诉您如果定义了,那么您需要关注
oPoint
我尝试了这个:console.log(oPoint.x,oPoint.y,addPuffs)它的日志为0.7774077543755 56.283392898185674 false。因此,错误必须在其他地方。即使使用:puff.push({posX:5,posY:5,scale:.1,age:0}),我也会得到此错误;我明白了。我认为问题出在那里,因为当我开始滚动时,我开始按,它开始记录错误。但这一刻与它开始在画布上绘图一样,错误出现在drawImage()调用中。我将字符串作为源传递给它,而不是实际的新图像()