Navigation

Contactez-nous

Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81

Par Philippe Le Van (@plv)

Les pièges Javascript

callback et valeur de "this"

regardez le code ci-dessous :

vous auriez dans doute envie d'écrire

"this.formId"

au lieu de

"this.controller.formId"

Ca ne marche pas : comme ctrl.initCallback est appelé par l'évenement "onload" de l'élément "window", à l'intérieur de initCallback, "this" représente l'objet window et non l'objet ctrl...

var Ctrl = Class.create();
Ctrl.prototype = {
    initialize: function() {},
    formId : "myForm",
    onloadCallback: function() {
        alert(this.controller.formId);
    }
};
ctrl = new Ctrl();
window.controller = ctrl;
Event.observe(window, 'load', ctrl.onloadCallback, false);

Commentaires

Ajouter un commentaire