Hallo,
Objektorientierung beißt sich mit dem Konzept von Event-Handlern. Wenn du eine Objektmethode auf die Weise als Handler registrierst, hat sie mit dem Objekt nix mehr zu tun, es sei denn, du sorgst dafür, dass die Objektinstanz per Closure-Effekt darin verfügbar ist (darauf läuft Struppis Lösung hinaus). Das ist eigentlich nur ein Hack.
In Prototype gibts dafür eine Standardlösung (wie für vieles, aber niemand kennt und benutzt es - vielleicht kennst du meine Meinung zu Bibliotheken). Ich bin kein Bibliotheken-Kenner, aber prinzipiell geht das in Prototype meines Wissens so:
Event.observe(element, "keydown", this.keydown.bindAsEventListener(this));
Das kapselt die Handlerfunktion im Grunde auch nur in einer Closure und führt den Handler im Kontext von this aus. Ist natürlich ewig langer Code.
Allerdings ist dein Ansatz anscheinend eher verquert und diese Objektorientierung bringt in dem Fall keinen Vorteil, genausowenig scheint es mir angesichts deines Codes nötig, dass der Handler im Kontext der Objektinstanz ausgeführt wird. Wird er dies nämlich nicht, wird er im Kontext des input-Elementes ausgeführt, und dieses ist in der Handlerfunktion als this verfügbar. Du kannst darüber also sowohl das maxLength-Attribute als auch den value auslesen. (Wenn du das maxLength-Attribut vorher löschen willst, kein Problem, dann speicherst du den Wert halt in einer anderen Eigenschaft beim Elementknoten-Objekt und kannst im Handler trotzdem darauf zugreifen.)
Mathias