Laurin: Sonderbarer Bug beim IE5 und OOP?

Hi Kollegen!

Mein IE5 macht komische Dinge - aber nur beim Erstenmal bei jedem Objekt!

Ich hab mir ein Objekt definiert. Wenn ich jetzt addiere dann wird der 1. Operand zuerst mal mit 10 multipliziert.

Mich würde interessieren ob Das ein lokaler Schaden bei mir ist, ob ich in mit dem Code (keine Fehlermeldungen) Schweinekram gebaut hab oder ob ich mich bei Pig Billy bedanken darf. Testmöglichkeit: Siehe URL.

Mfg - Laurin.

Die relevanten Daten:

Objektdefinition:

function CharO(Id,OrtX,OrtY,BewX,BewY)
{
  this.Id = Id;
  this.OrtX = OrtX;
  this.OrtY = OrtY;
  this.BewX = BewX;
  this.BewY = BewY;

function Bug()
  {
    Ax = Wo.OrtX;
    Bx = Ax + 1;
    Bx = Bx - 1;

alert("Gerechnet mit dem Objektfeld: (("+Ax+" + 1) - 1) = "+Bx+" meint zumindest Javascript...");
    if(Ax > 0)
      alert("Ein Tip: Negative Zahlen sind noch lustiger...");
    if(Ax != Bx)
      alert("Hinweis: Dieses falsche Rechenergebnis widmet Ihnen Microfoft... ");
  }
  this.Bug = Bug;
}

Das Objekt selber:

var  Wo = new CharO("W","20","20","0","0");

Der Workaround - statt Addition folgende Funktion einsetzen:

function DoAdd(a,b)
{
  var t = a + 0;
  var c = t / a;
  if(c != 1)
  {
    alert("Val = "+a+" Korr = "+c);
    t = b * c;
    t = a + t;
    t =  t / c;

return t;
  }
  else
    return(a + b);
}

  1. Hallo,

    Ich hab mir ein Objekt definiert. Wenn ich jetzt addiere dann wird der 1. Operand zuerst mal mit 10 multipliziert.

    Objekte kann man AFAIK nicht addieren ;-)

    Das Objekt selber:

    Das hast du doch eigentlich schon beschrieben. Jetzt kommt nur noch eine Instanz des Objekts.

    So müsste das ganze besser funktionieren:

    entweder:
      var  Wo = new CharO("W",20,20,0,0);
    statt
      var  Wo = new CharO("W","20","20","0","0");

    oder
      Bx = parseInt(Ax) + 1;
    statt
      Bx = Ax + 1;

    Viel Glück,

    Robert