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);
Ajoutez vos propres commentaires :
