Laurin: Sonderbarer Bug beim IE5 und OOP?

Beitrag lesen

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);
}