& (MOZILLA) isNaN() wird im Drachen falsch behandelt.
Siramon
- javascript
0 Kai Lahmann0 Siramon
hallo forum.
mir ist folgendes fehlverhalten in mozilla 0.9.9 aufgefallen.
im zusammenhang mit isNaN und objekten bzw. allgemeines testen von objekten.
----- <code style="schnipp"> -----
<html>
<head>
<title>isNaN</title>
<script type="text/javascript">
<!--
function init(obj) {
var foo = obj;
alert(isNaN(foo)); // [1]
alert(foo > 0); // [2]
alert(foo.name); // [3]
var foo2 = new mObj();
foo2.noise(); // [4]
alert(isNaN(foo2)); // [5]
alert(foo2 > 0); // [6]
}
function mObj() {
this.noise = function() { alert('lets make some noise'); }
}
//-->
</script>
</head>
<body>
<form>
<input type="button" onClick="init(this);" name="foobutton">
</form>
</body>
</html>
----- </code> -----
Die jeweiligen Ausgaben (alerts) waren wie folgt:
Internet Explorer 5.x, Mozilla 1.0rc1, Opera 6.0, Netscape 4.x; alles auf win32:
[1] --> true
[2] --> false
[3] --> 'foobutton'
[4] --> 'lets make some noise'
[5] --> true
[6] --> false
Mozilla 0.9.9 auf win32 zeigt ein anderes verhalten:
[1] --> false
[2] --> true
[3] --> 'foobutton'
[4] --> 'lets make some noise'
[5] --> true
[6] --> false
das heisst ein selbsterstelltes objekt wird richtig behandelt, ein form-objekt behandelt 0.9.9 falsch.
mozilla 1.0 rc1 zeigt diese verhalten nicht mehr.
leider habe ich diesen bug in der bugzilla _nicht_ gefunden.
daher meine frage:
war das ein bug, der mit rc1 gefixt wurde oder kann es sein, dass dieses verhalten in rc2 oder final wieder auftauchen könnte?
wenn der bug dennoch irgendwo in bugzilla vorhanden ist und als fixed und approved bezeichnet wird, dann kann man wahrscheinlich annehmen, dass er nicht mehr auftauchen wird in späteren versionen.
merci für eure antworten.
gruss
Siramon,
ja der aus der schweiz (verregnet)
hi
mach' mal ein alert(foo), vielleicht wird dann klar, wieso er das Objekt zur Zahl erklärt...
Grüße aus Lüneburg
Kai
hallo kai
mach' mal ein alert(foo), vielleicht wird dann klar, wieso er das Objekt zur Zahl erklärt...
alert(foo) gibt bei mir 'object HTMLInputElement' aus... --> isNaN sollte hier true sein.
b.t.w. rc1 macht es jetzt auch falsch...
ich behaupte mal das ist ein bug.
vielleicht sieht es unter linux anders aus?
grüsse
Siramon,
ja der aus der schweiz (wieder sonnig)