剪切有关代码如下:var ballList=new Array(); //全局变量
var boardList=new Array(); //全局变量
var collide; //全局变量 function collide(ballList,boardList,canvasId,canvasWidth,canvasHeight,gravity)
{
this.ballList=ballList;
this.boardList=boardList;
this.canvasId=canvasId;
this.canvasWidth=canvasWidth;
this.canvasHeight=canvasHeight;
this.gravity=gravity;
}collide.prototype.upBallDate=function(){
var m=this.ballList.length;
............................
............................
}
$(function(){$('#button_began').click(gameInit);});//点击button按钮触发gameInit函数function gameInit() { //在 gameInit函数中,实例化了collide的一个象
..................
..................
collide=new collide(ballList,boardList,"canvas_main",600,300,0.098); // ballList与boardList数组都已经存储了数据,并验证无误
...................
} 报错入下:this.ballList is undefined
[在此错误处中断] var m=this.ballList.length;
var boardList=new Array(); //全局变量
var collide; //全局变量 function collide(ballList,boardList,canvasId,canvasWidth,canvasHeight,gravity)
{
this.ballList=ballList;
this.boardList=boardList;
this.canvasId=canvasId;
this.canvasWidth=canvasWidth;
this.canvasHeight=canvasHeight;
this.gravity=gravity;
}collide.prototype.upBallDate=function(){
var m=this.ballList.length;
............................
............................
}
$(function(){$('#button_began').click(gameInit);});//点击button按钮触发gameInit函数function gameInit() { //在 gameInit函数中,实例化了collide的一个象
..................
..................
collide=new collide(ballList,boardList,"canvas_main",600,300,0.098); // ballList与boardList数组都已经存储了数据,并验证无误
...................
} 报错入下:this.ballList is undefined
[在此错误处中断] var m=this.ballList.length;
<script>
var arr=new Array("a","b","c");
var aa;
function a(ar){
this.str=ar;
}a.prototype.b=function(){
return this.str.length;
};$(function(){$('#btn').click(gameInit);});//点击button按钮触发gameInit函数function gameInit() {
aa=new a(arr);
alert(aa.b())//值取到了,=3
}//仿照你的写了一个,没找到问题,LZ看看还有什么代码没贴出来
</script>
</body>
但是你的全局变量的名称和你的函数名 包括你的变量名用的都是同一个collide 难道楼主没有考虑后果么
①查出gameInit()中$('body').everyTime('10ms',cld.upBallDate);有问题。$(function(){$('#button_began').click(gameInit);});//点击button按钮触发gameInit函数function gameInit() { //在 gameInit函数中,实例化了collide的一个象
..................
..................
collide=new collide(ballList,boardList,"canvas_main",600,300,0.098); // ballList与boardList数组都已经存储了数据,并验证无误
...................
$('body').everyTime('10ms',cld.upBallDate); //查出这句有问题
} ②验证将$('body').everyTime('10ms',cld.upBallDate); 改成$('body').everyTime('10ms',cld.upBallDate()); 将不再报原来的错误,但报错jQuery.timer插件有问题③最终将$('body').everyTime('10ms',cld.upBallDate); 改成$('body').everyTim('10ms',useUpBallDate);并再定义一个函数function useUpBallDate() {cld.upBallDate();}
这样就整个脚本就运行正常了,所有功能都能实现,但是每运行一次还是会报错this.ballList[j] is undefined