我正在关注蛇游戏教程。我在'paint()'函数中放入'snake_array.pop()'for-loop来查看会发生什么,我试图理解为什么我会收到以下错误:
“未捕获的TypeError:无法读取未定义的属性'x'”
我不明白为什么'x'未定义。 paint()for循环的最后一次迭代使得c = snake_array [2],而snake_array [2]是{x:2,y:2}。那么为什么它声明x未定义?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id="canvas" width="450" height="450"></canvas>
{{1}}
答案 0 :(得分:1)
设置变量tail
时,将从数组中删除元素。该数组在下一行中引用:var c = snake_array[i];
这意味着对于for循环的最后一次迭代,c引用空数组中索引i的对象!没有找到任何东西,因此未定义错误。