Am 22. Juli 2017 haben wir überarbeitete Fassungen unserer Datenschutzrichtlinie, sowie eine Cookie-Richtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesen überarbeiteten Dokumenten einverstanden. Bitte lesen Sie diese deshalb sorgfältig durch.

OOP mit JavaScript Grundkurs

Primitive Werte vs. Objekte

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In der Regel sind primitive Datentypen und Objekte getrennt. Mit Wrapper-Klassen und dem Boxing-Prinzip kann man zwischen den Welten wechseln, teils sogar automatisch. In dem Video lernen Sie die Besonderheiten von JavaScript in dieser Hinsicht kennen.
04:21

Transkript

"Primitive Datentypen sind keine Objekte und Objekte sind keine primitiven Datentypen." Diese Regel galt früher in vielen objektorientierten Sprachen. Java hat es zum Beispiel ganz streng getrennt und hat sogenannte "Wrapperklassen" zur Verfügung gestellt, um einen Wechsel von der einen in die andere Welt zu erlauben. Über das sogenannte "Boxing-Prinzip" und "Unboxing-Prinzip" sind aber die Grenzen zwischen primitiven Datentypen und Objekten immer mehr verschwommen. Gerade Java und vor allem auch C# wandeln nach Lust und Laune zwischen primitiven Datentypen und Objekten. Es ist ganz interessant sich einmal Gedanken zu machen, wie JavaScript sich hier verhält. Ich habe hier eine Variable "a" angelegt und mit dem Wert "42" versehen. Wenn wir uns den Typ anschauen, also mit "typeof" arbeiten, dann sollte es nicht überraschen, dass wir hier "number" bekommen. Doch was wäre, wenn wir jetzt auf "a" die "to"-Generation anwenden? Das heißt, wir würden einen Zeilenumbruch machen, und dann "a." "toString" oder so schreiben. Und das kommt heraus. Ist Ihnen klar, was das bedeutet? Der primitive Datentyp wurde implizit in ein Objekt gewandelt. Das ist genauso, als hätte ich mit einem Konstruktor gearbeitet, zum Beispiel "new Number (42)". Also, wenn ich mit "var b = new Number(42)" arbeiten würde und dann "b.toString" aufrufe, dann ist es ja sicherlich nicht überraschend, dass das geht. Aber hier ist die implizite Wandlung aus einem primitiven Datentyp plötzlich ein Objekt zu machen, doch etwas überraschend. Wie gesagt, das kennt man von Java und C#. Die Sache geht aber weiter. Denn wenn man so weit geht, was wäre dann, wenn man jetzt direkt an Literalien schreibt? Als nicht hier "a", sondern das hier. Geht so etwas? Sie merken hier an der Fehlermeldung bereits, dass es scheinbar ein Problem gibt. Und ich hatte nicht umsonst die Konsole von Firebug offen, denn Sie merken, wenn ich einen Reload durchführe, bekomme ich eine Fehlermeldung. Dieses Beispiel wird allerdings in einigen Engines funktionieren. In einigen Engines geht zum Beispiel auch so etwas. Dann würde einem Objekt eine neue Eigenschaft hinzugefügt. Es würde kein Fehler kommen, aber die Eigenschaft bliebe auf "undefined". Das sind allerdings Verhaltensweisen, die dann eben engine-spezifisch sind und sowieso nicht sinnvoll. Sie sollten sich also merken, dass grundsätzlich primitive Datentypen und Objekte zwar auch in JavaScript getrennt werden, aber es bei "Situation" dazu führen kann, dass aus einem primitiven Datentyp implizit ein Objekt wird.

OOP mit JavaScript Grundkurs

Sehen Sie, wie Sie mit JavaScript objektorientiert programmieren können.

3 Std. 8 min (35 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:09.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!