Class member variable undefined

  • Hallo Community,


    beschäftige mich gerade mit HTML5 Und JS. Habe folgenden Code geschrieben und ich verstehe den Fehler nicht:


    cute.js

    Rufe ich die Klasse Image auf und will das Image Zeichnen, ist es Undefined:


    main.js

    erstelle ich das Image allerdings ohne meine Image-Klasse (ab Zeile 8 ) in der main.js, funktioniert es.


    Ich kann mir dieses Verhalten absolut nicht erklären.

  • Das this in der anonymen Funktion des onload ist ein anderes als das this im Objekt testImg, nämlich das img-Element, auf das das onload registriert wurde.

    Lösung, indem Du das this einer Variablen zuweist und diese in der Funktion ansprichst:

    Code
                draw(context, x, y) {
                    var that = this;
                    this.image.onload = function () {
                        // bei this und that.image handelt es sich
                        // innerhalb dieser an. Funktion um das selbe Element 
                        console.log(that.image);
                        console.log(this);
                        context.drawImage(that.image, x, y);
                    }
                }
  • Zitat

    Das this in der anonymen Funktion des onload ist ein anderes als das this im Objekt testImg

    Danke, das war das Problem. Nun funktioniert es.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!