我正在用javascript制作游戏,并且我正在使用一个类来保存所有的精灵。但是,当我尝试运行它时,Safari会给我“SyntaxError:意外使用保留字'class'”。我找不到应该这样做的理由。下面是我的代码:为什么我在Javascript中使用“class”时出现语法错误
var spritesContext;
//Sprite class
class sprite{
constructor(imageName, imageX, imageY, imageHeight, imageWidth, context, canvas){
this.imageName = imageName;
this.imageX = imageX;
this.imageY = imageY;
this.imageHeight = imageHeight;
this.imageWidth = imageWidth;
this.canvas = canvas;
this.context = context;
spritesContext = context;
console.log("Sprite constructed");
}
draw(){
var character = new Image();
character.src = "../Images/" + this.imageName + ".png";
character.onload = function(){
spritesContext.drawImage(character, this.imageX, this.imageY, this.imageWidth, this.imageHeight);
console.log("Inner Draw is working.");
}
console.log("Draw is working.");
}
function getHeight(){
return this.imageHeight;
}
function getWidth(){
return this.imageWidth;
}
function getX(){
return this.imageX;
}
function getY(){
return this.imageY;
}
function moveUpX(e){
this.imageX = (this.imageX + e);
}
function moveUpY(e){
this.imageY = (this.imageY + e);
}
function moveBackX(e){
this.imageX = (this.imageX - e);
}
function moveBackY(e){
this.imageY = (this.imageY - e);
}
function changeImage(e){
this.imageName = e;
}
function getImage(){
return this.imageName;
}
function changeX(e){
this.imageX = e;
}
function changeY(e){
this.imageY = e;
}
}
“一流”是一个新事物 - 您使用的是哪个版本的JavaScript引擎? – Soren
这是ES6中的关键字。你用什么浏览器/环境? – zero298
你不能在这样的类中声明函数,这是一个错误 – adeneo