molily: Zuweisung zerstört Number-Objekt

Beitrag lesen

Hallo,

Habe ein unbequemes Verhalten von JS entdeckt:

Das ist eigentlich ganz logisch. Ich weiß nicht, wie das in anderen Sprachen gelöst ist, aber es scheint mir unlogisch, dass a + b wieder das selbstidentische Number-Objekt a ergibt, nur eben mit neuem Wert. a=a+b wäre dann auch doppelt gemoppelt, weil es zu a=a auflösen würde.

Für einen bestimmten Zweck würde ich gerne mit Number-Objekten arbeiten, die um spezielle Eigenschaften erweitert sind, aber leider geht das so nicht :-(.

Ja. All diese Operatoren arbeiten mit Primitives und wandeln die Operanden ggf. um. Operator-Überladung gibt es in JavaScript nicht, also müsstest du dir einen eigenen Typ »Value« mit eigenen Methoden wie plus, minus usw. schreiben. Die operieren dann z.B. mit einem Number-Primitive als private Eigenschaft. valueOf und toString kannst du überschreiben, sodass sich das Objekt nach außen wie ein Number-Primitive verhält.

Mathias