Javascript 如何在类JS中生成数组变量
我是一名python和java程序员,现在正在学习java脚本。首先,我试图制作snake,但snake.js中出现了一个奇怪的错误 Index.htmlJavascript 如何在类JS中生成数组变量,javascript,syntax-error,p5.js,Javascript,Syntax Error,P5.js,我是一名python和java程序员,现在正在学习java脚本。首先,我试图制作snake,但snake.js中出现了一个奇怪的错误 Index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>p5.js vers 0.5.2, Edit index.html to Change This Title</tit
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>p5.js vers 0.5.2, Edit index.html to Change This Title</title>
<script src="http://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.2/p5.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.2/addons/p5.dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.5.2/addons/p5.sound.js"></script>
</head>
<body>
<script src="Apple.js"></script>
<script src="Snake.js"></script>
<script src="index.js" type="text/javascript"></script>
</body>
</html>
Index.js
// Currently empty
class Apple{
constuctor(){
}
}
let snake;
function setup(){
createCanvas(1000, 1000);
background(0, 0, 0);
snake = new Snake();
}
function draw(){
background(0, 0, 0);
snake.update();
snake.show();
}
function keyPressed(){
snake.move(key);
}
class Snake {
constuctor(){
this.position = p5.Vector(500, 500);
this.direction = "Up";
this.body = [[500, 500]];
this.bodySize = 1;
}
update(){
switch(this.direction){
case "Up":
this.position.add(0, -40);
break;
case "Down":
this.position.add(0, 40);
break;
case "Left":
this.position.add(-40, 0);
break;
case "Right":
this.position.add(40, 0);
}
this.body.push([this.position.x, this.position.y]);
}
show(){
// Havn't coded this yet.
}
}
Snake.js
// Currently empty
class Apple{
constuctor(){
}
}
let snake;
function setup(){
createCanvas(1000, 1000);
background(0, 0, 0);
snake = new Snake();
}
function draw(){
background(0, 0, 0);
snake.update();
snake.show();
}
function keyPressed(){
snake.move(key);
}
class Snake {
constuctor(){
this.position = p5.Vector(500, 500);
this.direction = "Up";
this.body = [[500, 500]];
this.bodySize = 1;
}
update(){
switch(this.direction){
case "Up":
this.position.add(0, -40);
break;
case "Down":
this.position.add(0, 40);
break;
case "Left":
this.position.add(-40, 0);
break;
case "Right":
this.position.add(40, 0);
}
this.body.push([this.position.x, this.position.y]);
}
show(){
// Havn't coded this yet.
}
}
错误是:UncaughtTypeError:无法读取未定义(Snake.js 23)的属性“push”
我在互联网上到处找,找不到解决办法
我不明白它为什么这么做,因为Snake.body不是未定义的我说了这个。body=[[500500]]
请帮助我了解该做什么
构造函数
->构造函数
(缺少r
)
并且错误消息uncaughttypeerror:cannotreadproperty'push'of undefined
不再显示
[编辑]
你也忘了新的(this.position=p5.Vector(500500);
->this.position=new p5.Vector(500500);
)
您可以在此处进行测试:
尝试使用
Snake
构造函数中的update
方法吗this.update=this.update.bind(this)
首先您是否尝试在this.body.push…
行之前插入console.log(this.body)
在控制台中键入snake.body:它记录未定义