Hi,
also wenn ich mit prototype arbeite, dann kann ich auch mit typeof arbeiten. Denn wenn prototype funktioniert, dann funktioniert auch typeof! 8-))
wie gesagt sollte das nicht das gleiche sein. Das einzige 100% richtige ist, zu testen, ob der Parameter wirklich undefiniert ist. Deine variante mag in 99.9% der Fälle funktionieren, ist aber nicht das gleiche.
*Verglichen mit PHP* ist es auf jeden Fall das gleiche. Daß "meine" Variante aber nicht das gleiche ist wie typeof, ist klar. typeof kann ja nun noch einiges mehr (heißt ja auch TypeOf nicht IsDefined). ;-))
Nein, du prüfst nicht auf definiert.
undefiniert ist immer nur typeof == 'undefiniert' alles andere mag in vielen Fällen funktionieren, in manchen aber nicht.
In JS 1.0 ist es gar die einzige Möglichkeit, die funktioniert, während ein "typeof-Script" erst gar nicht funktioniert.
Ich versteh auch nicht warum du es für sinnvolller erachtest zwei Vergeleiche zu machen statt einem.
Und ich verstehe nicht, wieso man ohne Not etwas verwenden soll, für das es eine einfache und abwärtskompatible Alternative gibt (genauso wie ich z.B. auch ein substring() jederzeit einem substr() vorziehe, da ersteres, bei gleicher Funktionalität, auch mit JS 1.0 funktioniert, letzteres aber erst ab JS 1.1; oder ich bevorzuge eine eigene search/replace-Routine, da die ab JS 1.0 funktioniert, während replace() JS 1.2 benötigt; ...).
Ich habe keinen Einfuß auf den Surfer. Ich kann mich mit 99,99% Reichweite zufrieden geben, muß ich aber nicht (zumal wenn es mich nicht mehr Aufwand kostet - was es nicht tut, da ich ja schon seit der 1.0er in JavaScript programmiere). Und alleine, daß *mir* *meine* Browser Fehler melden (und die Skripte dann gar nicht mehr ausführen), wenn ich mal wieder einen "Generalcheck" vornehme, ist für mich mehr als Grund genug.
Gruß, Cybaer
PS: Natürlich verwende ich *auch* typeof oder replace() (wie auch ein Blick die Sourcen meines "Coding-Schatzkästleins" zeigt). Aber eben *nur* dort, wo ich *wirklich* drauf angewiesen bin. Und *dann* sorge ich halt anderweitig dafür, daß ein JS-1.0-(oder 1.1- oder 1.2- oder 1.3-)Browser beim Ausführen (bzw. schon beim Parsen) des Scriptes nicht abbricht. So mache ich das mit allen neuen "JS-Errungenschaft", eben bis hin zur aktuellen JS-Version ...
Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!