Ergebnis 1 bis 2 von 2
  1. #1
    saschaa ist offline Grünschnabel
    registriert
    27-05-2001
    Beiträge
    4

    OOP Javascript & Jquery

    Hallo

    Warum ist this.action im folgenden beispiel undefined und nicht 1?

    Wie muss ich es abändern, das ich auf den this.action zugriff habe in der callback function von post?

    var obj = new SwapAjax("test");
    obj.run1();


    function SwapAjax( url) {
    this.url = url;
    this.divId = '#ajax_body';
    this.action = 1;
    this.run1 = function() {
    $.post(this.url , this.afterPost );
    }
    }

    SwapAjax.prototype.afterPost = function(data) {
    alert(this.action); hier = undefined warum?
    }

    Wie bekoome ich den this zeiger von SwapAjax in diese funktion?

    Vielen Dank
    Sascha
    Sa

  2. #2
    Avatar von Dormilich
    Dormilich ist offline Kaiser
    registriert
    15-01-2010
    Beiträge
    1.287

    AW: OOP Javascript & Jquery

    Das liegt daran, das der Scope (Function Context) von this nicht immer konstant ist, sondern i.d.R. den Scope des gerade ausführenden Objekts (in deinem Falle also $) annimmt. wenn dieses Objekt die entsprechende Eigenschaft nicht besitzt, kommt halt undefined heraus. Um das zu umgehen, mußt du this über ein Closure festlegen, z.B. mit der .bind() Methode (ab ECMAScript 262-5 nativ, ansonsten schau mal im Prototype Framework nach)

Ähnliche Themen

  1. Javascript OOP
    Von squee im Forum JavaScript
    Antworten: 8
    Letzter Beitrag: 04-02-2010, 13:31
  2. Antworten: 21
    Letzter Beitrag: 25-01-2010, 16:43
  3. javascript in svg
    Von Speedx im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 19-01-2010, 20:35
  4. Antworten: 5
    Letzter Beitrag: 08-12-2009, 21:17
  5. Javascript durch Link auf 2. Seite ausführen??
    Von Bass-T im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 27-06-2008, 11:35

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •