nnaiman16
nnaiman16

Reputation: 19

Why am I getting a Syntax error when using "class" in Javascript

I am making a game in javascript, and I'm using making a class to hold all the sprites. However when I try to run it, safari gives me "SyntaxError: Unexpected use of reserved word 'class'". I can't find a reason it should be doing this. Below is my code:

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;
    }

}

Upvotes: 0

Views: 3679

Answers (2)

shrimp rice
shrimp rice

Reputation: 322

enter image description here

Safari did not support "class" when the question was asked.

Upvotes: 0

Sarhanis
Sarhanis

Reputation: 1587

To make your code work, and more specifically the keyword class, you need to be in strict mode to enable certain browsers to interpret it.

To be in strict mode, add the following to the top of your file:

'use strict';

Upvotes: 1

Related Questions